RewriteRule不起作用

时间:2016-01-20 20:56:01

标签: php apache .htaccess mod-rewrite

我正在尝试使用.htaccess创建友好的网址。我已经检查过,如果我在我的.htaccess上放了一个deny,它就不会加载证明.htaccess正在工作的网页。

我还验证了使用phpinfo在php上加载了mod-rewrite模块 问题是,当我访问网址http://128.199.62.16/web/grupo/asd/123时,它说找不到,当我尝试使用http://128.199.62.16/web/grupo/index.php?id=asd&description=123时,它会按预期工作

您可以在这里找到我的.htaccess文件内容

RewriteEngine on
RewriteRule ^web/grupo/([^/]*)/([^/]*)/$ web/grupo/index.php?id=$1&descripcion=$2
Options -Indexes
ServerSignature Off

你能帮帮我吗:D

2 个答案:

答案 0 :(得分:0)

您的输入网址没有尾部斜杠,但您的规则需要一个 我建议在尾部斜杠后面添加一个问号,表示它是可选的 另外,我建议使用+代替*来表示"一个或多个"而不是"零或更多"。

RewriteRule ^web/grupo/([^/]+)/([^/]+)/?$ web/grupo/index.php?id=$1&descripcion=$2

有关进一步参考,请参阅:
trailing slash optional

答案 1 :(得分:0)

如果此文件不存在,请创建一个新文件/var/www/html/web/grupo/.htaccess

RewriteEngine on
RewriteBase /web/grupo/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?id=$1&descripcion=$2 [L,QSA]