无法从.htaccess生成的url获取变量

时间:2014-06-13 10:29:50

标签: php regex apache .htaccess mod-rewrite

我试图使用.htaccess文件获取新网址但我无法从网址获取php变量名称。 .htaccess代码在这里

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^courses/([a-zA-Z0-9\-\_]+)/$ courses.php?cat-name=$1

php代码

echo $_GET['cat-name'];

但显示错误未定义的索引cat-name。我的网址是http://www.mywebsite.com/courses/php/。那么如何访问php变量?

1 个答案:

答案 0 :(得分:3)

在这里看起来像MultiViews选项的受害者。使用以下命令禁用它:

Options -MultiViews
  • MultiViews使用选项Apache's content negotiation module,它在mod_rewrite之前运行,并使Apache服务器匹配文件扩展名。因此/file可以在网址中,但它会投放/file.php