我看过其他问题,似乎没有人能回答我想要做的事情。目前,我的.htaccess文件中有以下内容可以将所有非www流量重定向到www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]这个很好用。无论文件是否存在,如果有人试图访问example.com或example.com/page- not --它将永久地重定向到www.example.com或www.example.com/page-not- file。
我想改变网站的运行方式,让所有的请求都通过一个特定的文件来路由(例如,主目录中的index.php )。应该发生的是,如果有人转到www.example.com/any-page,它仍然会显示www.example.com/any-page,但我将在www.example.com/index.php中处理它,这样我就可以在一个文件中处理所有流量。我可以通过以下方式做到这一点:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]但是,这只在请求的文件夹不存在时才会重定向(而且它也不会将example.org/any-folder更改为www.example.org/any-folder。
简而言之,是否有一种方法可以通过单个文件路由所有请求,即使请求的文件存在,并对所有非www通信量进行301重定向?
发布于 2017-02-01 00:50:16
是的,有。首先,保留原来的规则(稍作修改,见下文):
RewriteEngine On
RewriteCond %{HTTP_HOST} !=www.example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]在此之后,添加:
RewriteCond %{HTTP_HOST} =www.example.com
RewriteRule ^(.*)$ index.php?path=$1 [QSA]与你已经拥有的非常相似,除了:
告诉我有什么问题。
https://stackoverflow.com/questions/41970064
复制相似问题