我有一个共享主机,上面托管了多个域。在我的主机的根文件夹中存在一个 .htaccess(比如说是 htaccess1)。ht1中的代码是:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/mydomain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mydomain/$1
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteRule ^(/)?$ mydomain/index.php [L]
这些规则存在,因此只有 urlwww.mydomain.com
使用文件夹的所有文件mydomain
。我是 url 重写的新手,所以我不明白每一行的含义。文件夹中存在另一个 .htaccess(比如 htaccess2)文件mydomain
。代码是 htaccess2 是:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)?/$ try.php?id=$1
RewriteRule ^([0-9]+)?$ try.php?id=$1
RewriteRule ^post/([0-9]+)?/$ post.php?id=$1
RewriteRule ^post/([0-9]+)?$ post.php?id=$1
在这个文件中,第 6,7 行工作正常,并将带有数字参数的请求重定向到,try.php
但第 8,9 行不起作用,并给出 404 page not found 错误,确切的错误字符串是:
在此服务器上找不到请求的 URL /mydomain/post/1233445。
我怀疑 htaccess1 的某些效果是否会造成这个问题,因为我在第 8,9 行尝试了许多正则表达式的变体。请帮忙。