我在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
答案 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]