2017-08-24 97 views
2

使用重写规则,当我有新的项目,我使用htaccess的重写的URL。我确信我的代码没有任何问题,因为我今天在xamp和000webhost上测试了它,并且没有任何问题。未定义指数WAMP

但是,当我在wampServer $_GET测试相同的脚本不能正常使用的PHP页面,在这里我得到这个错误的:

output is Notice: Undefined index: key in D:\wamp64\www\cp\examples.php on line 5

问题是与wampServer服务器。也许我应该改变一些东西,但我不知道问题出在哪儿。

注:我启用rewrite_module从wampServer Apache模块。

的htaccess代码:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase /cp/ 
RewriteRule ^examples.html$ examples.php //it's working 
RewriteRule ^examples/([a-zA-Z0-9]+)?$ examples.php?key=$1 

的htaccess的第五行使用时,不使用PHP工作:

echo $_GET['key']; //output is Notice: Undefined index: key in D:\wamp64\www\cp\examples.php on line 5 
+0

你能列举一些例子网址,这是与请失败? – Bananaapple

+0

感谢您的回放兄弟。 我使用这个网址 http:// localhost/cp/examples/11 –

+0

通过在我的htaccess中添加-MultiViews解决了我的问题。 我不知道为什么这是在另一台服务器与这个选项! 但无论如何,我的问题解决了,谢谢 –

回答

3

添加-MultiViews选项在你的代码

什么是多视图
MultiViews搜索是服务器执行隐式文件n ame模式匹配,并从结果中进行选择。

举例来说,如果你有一个名为configuration.php文件(或其它扩展名)的根文件夹,并设置了在你的htaccess名为配置的虚拟文件夹的规则/,那么你必须与你的规则有问题因为服务器会自动选择configuration.php(如果MultiViews已启用,并且大多数情况下是这种情况) 如果要禁用该行为,只需在htaccess中添加此选项-MultiViews

演示示例:

使用此代码用于 .htaccess文件

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase /cp/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^examples/(.+?)/?$ /cp/examples.php?key=$1 [L,QSA] 

你examples.php代码将

<?php 
echo $_REQUEST['key']; 
?> 

然后调用 http://localhost/cp/examples/27

输出将是:27

+1

“添加MultiViews选项” - 或者说,_disable MultiViews_。 – MrWhite

+0

特别感谢你哈桑赛义德,已解决。 –

+0

谢谢bro先生,我的问题解决了。通过添加。 –