0

我的 Apache Rewrites 似乎有问题

RewriteEngine on

RewriteBase / 
RewriteRule ^wordpress/?$ / [NC,L,R=301] 

RewriteRule ^/$ wordpress/ [NC,L]

我只需要从 URL 中删除 /wordpress,因为我在 Wordpress 中有页面我希望被视为主目录

目前的网址是

domain.com/wordpress/blog

我宁愿没有 /wordpress,而是 domain.com/blog

有什么帮助吗?

4

2 回答 2

0
RewriteEngine on
RewriteBase /
RewriteRule ^wordpress/(.*)$ blog/$1 [L]
于 2012-09-09T09:35:42.107 回答
0

目前的网址是

domain.com/wordpress/blog

我宁愿没有 /wordpress,而是 domain.com/blog

因此,如果有人向没有位的 URL发出请求,您似乎想要重定向浏览器,然后在内部将位重写回 URI?这绝对是可行的,但如果你在某处有 wordpress 重写规则,它们根本不会相互配合。domain.com/wordpress/wordpresswordpress

目录中的任何规则/wordpress都将取代您放在文档根目录中的任何规则,这是这些规则需要去的地方,并且您的 remove-the-wordress-from-URI 规则将被完全忽略。即使您打开了规则继承,/wordpress目录中的规则也会首先执行。

如果您所有的 wordpress 规则实际上都在文档根目录的 htaccess 文件中,那么只需确保将这些放在wordpress之前:

RewriteEngine on
RewriteBase / 

# redirect the browser if someone makes a request for domain.com/wordpress/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /wordpress/
RewriteRule ^/?wordpress/(.*)$ /$1 [L,R=301]

# internally rewrite the wordpress bit back into the URI
RewriteRule %{DOCUMENT_ROOT}/wordpress%{REQUEST_URI} -f [OR]
RewriteRule %{DOCUMENT_ROOT}/wordpress%{REQUEST_URI} -d
RewriteRule ^(.*)$ /wordpress/$1 [L]
于 2012-09-11T06:39:24.050 回答