使用重写规则清理网址不起作用

时间:2013-09-06 13:16:49

标签: regex apache .htaccess mod-rewrite

我阅读了一些关于获取干净网址的教程。我尝试了他们在教程中提供的一些代码,但我无法得到一个简单的例子来运行...

我想改变:http://domain.com/brigandze/mannen/index.php?p=0 收件人:http://domain.com/brigandze/mannen/0/

我使用此代码并将其放在目录domain.com/brigandze/mannen/

我的htacces文件中有这段代码:

RewriteEngine on
RewriteRule    ^([0-9]+)/?$    index.php?p=$1    [NC,L]

1 个答案:

答案 0 :(得分:2)

您需要正确设置RewriteBase或使用RewriteRule中的完整路径(有关RewriteBase文档,请参阅here)。

RewriteBase /brigandze/mannen/

RewriteEngine on

RewriteRule ^([0-9]+)/?$ index.php?p=$1 [NC,L]

RewriteEngine on

RewriteRule ^brigandze/mannen/([0-9]+)/?$ brigandze/mannen/index.php?p=$1 [NC,L]

问题是Web服务器会查看从DocumentRoot开始的URL,除非您另有说明。在您的情况下,这意味着您的规则正在尝试重写

http://domain.com/0/

通过添加RewriteBase,它会查看正确的位置。