我很难让几个 mod_rewrite 规则在我的 .htaccess 文件中一起工作。在整个网站中,我想删除“www”。来自所有 URL。我在文档根目录使用以下内容:
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301]
然后,在一个文件夹“/help”中,我想做 2 次重写:
- 将 domain.com/help/1 更改为domain.com/index.php?question=1
- 将 domain.com/help/category/example 更改为domain.com/index.php?category=example
所以在 domain.com/help 我有以下内容:
Options +FollowSymLinks
RewriteRule ^([0-9]+)/?$ index.php?question=$1 [NC,L]
RewriteRule ^category/([^/\.]+)/?$ index.php?category=$1 [NC,L]
以上 2 个 .htaccess 文件适用于:
www.domain.com到domain.com
domain.com/help/1到domain.com/index.php?question=1
domain.com/help/category/example到domain.com /index.php?category=example
但是,当我需要结合 2 次重写以删除“www”时,这不起作用。并将子文件夹重写为 url 变量。例如:
www.domain.com/help/1到domain.com/index.php?question=1
给出 500 错误。
我哪里做错了?而且,这最好与 2 个 .htaccess 文件一起使用,还是可以/应该将 2 个文件合并到文档根目录下的 1 个 .htaccess 文件中?