用htaccess清理网址

时间:2014-03-14 08:18:01

标签: apache .htaccess

我正在尝试使用干净的网址,这是我的代码:

Options -Multiviews -Indexes +FollowSymLinks

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteEngine ON
RewriteRule ^([0-9a-z\-\_]+)?$ profile.php?q=$1 [QSA,L,NC]
RewriteRule ^([^\.]+)$ $1.php [NC,L]

ErrorDocument 404 /page/error?q=aqw

唯一的问题是,我无法调用目录,我必须指定文件名,例如:

<a href="site.com/help">Help</a> //this is not working
<a href="site.com/help/index"></a> //This is working

那我怎么能解决这个问题,谢谢

1 个答案:

答案 0 :(得分:0)

查看您的规则我认为您的第一条规则是多余的,您可以删除。

在您的文档根目录中尝试此操作:

RewriteEngine On
RewriteBase /

ErrorDocument 404 /error?q=aqw

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]