0

我目前正在使用从文件mod_rewrite中删除.HTML扩展名,以及重定向到他们的友好版本。

我使用pinterest.htmlgoogle.html文件来验证我的 Pinterest 页面和 Google Apps 帐户。

对于 mod_rewrite,我使用这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

我的问题是关于它与验证文件相关的逻辑和功能。'x' file据我了解,目的是为'y' URL.

因此,即使我由于重定向和删除而example.com/pinterest.html担任,也不应该有任何干扰,因为文件仍然像往常一样可读,对吗?example.com/pinterest.HTML

4

1 回答 1

1

不要重写这两个特殊文件。向 cond 正则表达式添加否定断言:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(?!pinterest\.html|google\.html).*\.html\ HTTP/ 

PS。为什么不只是匹配%{REQUEST_URI}

RewriteCond %{REQUEST_URI} !(pinterest|google)\.html$
RewriteCond %{REQUEST_URI} \.html$

我用简单的正则表达式重写了这个。这说的是不匹配两个特殊文件,但匹配任何其他.html文件请求。

于 2013-03-15T19:42:37.857 回答