3

所以我让它将.html重写为.php,但是当我需要它时它不会加载.html文件。有没有办法让它忽略书店目录?我以为我已经在里面了,但它不起作用。

/public_html/.htaccess
Options +FollowSymlinks
DirectoryIndex index.php index.html index.htm
RewriteEngine on
RewriteCond %{REQUEST_URI} "/bookstore/"
RewriteRule ^(.+)\.html$ http://virtualbookworm.com/$1.php [L]
ErrorDocument 404 /error.php

../bookstore/.htaccess
Options +FollowSymlinks
DirectoryIndex index.php index.html index.htm
Options +Indexes
ErrorDocument 404 /error.php
4

2 回答 2

3

要忽略书店目录,您需要!在表达式前面加上:

RewriteCond %{REQUEST_URI} !/bookstore/

或者,您可以在目录中的 htaccess 文件中打开重写引擎,bookstore并且文档根目录中的规则将被取代:

../bookstore/.htaccess
Options +FollowSymlinks
DirectoryIndex index.php index.html index.htm
Options +Indexes
ErrorDocument 404 /error.php
RewriteEngine On

此外,http://virtualbookworm.com在规则的目标中包含 将导致浏览器被重定向(使用 302 响应)并且它会更改地址栏中的 URL。如果这不是您想要的,只需将其删除:

RewriteRule ^(.+)\.html$ /$1.php [L]
于 2012-08-13T19:32:28.957 回答
1

尝试

RewriteCond %{REQUEST_URI} "/bookstore/"
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)\.html$ http://virtualbookworm.com/$1.php [L]

RewriteCond %{REQUEST_FILENAME} !-f应该过滤掉请求,以便仅在“请求的”文件不存在时应用规则。

于 2012-08-13T19:24:38.740 回答