URL重写有两个不同的毯子重定向(一个用于WordPress永久链接)
-
03-07-2019 - |
题
我有一个相对复杂的.htaccess文件来控制页面请求,这会将所有文件请求(带有一些类型排除)重定向到索引文件,但包含WordPress安装的目录除外。
我现在需要启用WordPress PermaLink支持,但是我很难修改.htaccess工作。
PermaLinks需要生成更多SEO友好的URL,它们通常由WordPress专门处理 - 但在我的情况下,它似乎是一个mod-rewrite规则,如详细这里是必需的(否则,启用时它会给出一个404响应)。
这是当前的.htaccess内容:
RewriteEngine ON
RewriteCond %{HTTP_HOST} !^www\..*
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^([^.]*)\.(co\.uk)
RewriteRule ^.*$ http://www.%1.%2%{REQUEST_URI} [R=permanent,L]
AddHandler application/x-httpd-php .phtml
#RewriteBase /blog/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /blog/index.php [L]
RewriteBase /
RewriteRule ^blog/ - [L]
RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml|swf|flv)$ index.phtml
注释掉的部分是我正在尝试的地方,并且未能为WordPress PermaLink功能添加规则。
最初,我认为这段代码正在运行,但事实上一些非WordPress请求仍然被路由到blog / index.php文件,当试图跟踪博客中的链接到其他站点区域时,这些请求再次被路由回来到博客index.php。
解决方案
嗯,我相信我现在已经解决了这个问题 - 后见之明的答案非常明显。我在/ blog /目录中创建了另一个.htaccess文件,并将相关规则放在那里 - 似乎工作得很好。
不隶属于 StackOverflow