我有一个相对复杂的.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文件,并将相关规则放在那里 - 似乎工作得很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top