mod_rewrite有时会关闭?

问题描述:

我在我的.htaccess文件中使用mod_rewrite来制作看起来更干净的URL。我有两个目录(subdir1subdir2),它们是根目录内创建的文件夹。他们不是子域名。 .htaccess文件位于三个目录中:根,subdir1subdir2mod_rewrite有时会关闭?

下面的.htaccess文件驻留在根目录下:

Options All -Indexes 
ErrorDocument 404 /404.php 
FileETag MTime Size 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/(subdir1|subdir2)(/.*)?$ [NC] 
RewriteCond %{REQUEST_URI} ^(.*)?$ [NC] 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)$ /subdir1/ [R=301,QSA,L] 

RewriteRule ^(.*)(\.html|\.htm)$ index.php [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/?$ index.php [L] 
</IfModule> 

而这一次在subdir1目录:

Options All -Indexes 
ErrorDocument 404 /404.php 
FileETag MTime Size 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /subdir1/ 

RewriteRule ^(.*)(\.html|\.htm)$ index.php [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/?$ index.php [L] 
</IfModule> 

一切工作正常。我可以浏览www.mydomain.com/subdir1/1234-myaritcle.html页面并阅读其内容,但有时候重写模块会关闭而不创建干净的URL,并且文章将打开以下URL:www.mydomain.com/index.php?article=1234

您能否请帮助?问题的原因是什么? .htaccess文件有问题吗?

您的规则中没有任何内容导致网址显示为www.mydomain.com/index.php?article=1234。无论您打开文章的链接是否可能都不会生成干净的URL。

+0

ummm好的,可以在服务器上设置一些防止功能来创建干净的URL? ,导致它大多数时间工作正常,但有时网站运行缓慢,然后链接打开为www.mydomain.com/index.php?article=1234 ,我还有一个问题,请 剂量这种效果的方式是谷歌处理干净的URL?因为我不想谷歌归档un-clean-urls。 – aadiahg 2012-07-18 06:35:20