0

我有一个相对复杂的 .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 文件,当尝试从博客中跟随链接到其他站点区域时,这些请求再次被路由回博客索引.php。

4

1 回答 1

2

好吧,我相信我现在已经解决了这个问题——事后看来,答案是显而易见的。我在 /blog/ 目录中创建了另一个 .htaccess 文件并将相关规则放在那里 - 似乎工作得很好。

于 2009-01-04T14:17:00.570 回答