htaccess重写停止工作

时间:2014-08-05 10:37:44

标签: php apache .htaccess

我在htaccess文件中使用了以下重写规则: RewriteRule ^/UA/ - [L]

为了将请求传递给特定文件夹,其他所有内容都转到index.php。

今天它停止了工作!我(有意)改变的唯一的东西是我正在使用的数据库,我重命名并更改了密码,我看不出这会如何影响重定向。

我的完整htaccess文件看起来像这样,请问,有人可以看到为什么上面的重定向不再有效吗?

DirectorySlash On
RewriteEngine on
ReWriteBase /

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

RewriteCond %{HTTP_HOST} ^mydomain\.com$ 
RewriteRule ^/?$ "https\:\/\/www\.mydomain\.com\/" [R=301,L]

#Allow UA access
RewriteRule ^/UA/ - [L]

#Allow certain file types to access directly
RewriteRule \.(css|js|png|jpg|gif|woff|eot|ttf|svg|ico)$ - [L]

# Catch all
RewriteRule .* index.php [L]   

编辑:----- 我已经从上面清理了我的原始文件,因为其中包含了无关的重定向,然后我添加了@anubhava建议的一些更改,以便我有以下内容:

DirectorySlash On
RewriteEngine on
ReWriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

RewriteCond %{HTTP_HOST} ^mydomain\.com$ 
RewriteRule ^/?$ "https\:\/\/www\.mydomain\.com\/" [R=301,L]

#Allow UA access
RewriteRule ^/?UA/ - [L,NC]

#Allow certain file types to access directly
RewriteRule \.(css|js|png|jpg|gif|woff|eot|ttf|svg|ico)$ - [L,NC]

# Catch all
RewriteRule .* index.php [L]

但这仍未成功重定向。我在我的www根目录中有这个htaccess文件,在UA文件夹中有一个额外的文件,用于获取任何重定向。 对www.mydomain.com/UA的请求正在返回www.mydomain.com/index.php而不是www.mydomain.com/UA/index.php

1 个答案:

答案 0 :(得分:0)

试试这段代码:

DirectorySlash On
RewriteEngine on
ReWriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

# Redirect to HTTPS site
RewriteCond %{HTTP_HOST} ^(www\.)?my-domain\.com$ [OR]
RewriteRule ^ https://www.mydomain.com%{REQUEST_URI} [R=301,L,NE]

#Allow UA access
RewriteRule ^/?UA/ - [L,NC]

#Allow certain file types to access directly
RewriteRule \.(css|js|png|jpe?g|gif|woff|eot|ttf|svg|ico)$ - [L,NC]

# Catch all
RewriteRule .* index.php [L]