将停放的域重定向到子文件夹 - Wordpress问题

时间:2013-06-26 17:25:09

标签: wordpress .htaccess redirect subdirectory

我可能错过了一些非常简单的事情。我在mod_rewrite上经历了大约4 ^ 27个帖子。但仍然无法使其正常运作。

我有两个指向同一DNS条目的URL。我有标准的.htaccess用于将停放的域重定向到我的主域上的子文件夹。但当我走下两个级别时,我遇到了问题。这是我的情况:我有MAIN域名和PARKED域名。我希望PARKED域的每个请求都以MAIN / PARKED结束,但仍然向用户显示为PARKED。因此,当用户输入PARKED /页面时,即使文件位于MAIN / PARKED /页面中,也应该出现在浏览器的地址栏中。我希望浏览器显示的URL更改为PARKED /子文件夹/页面,即使用户手动输入MAIN / PARKED /子文件夹/页面也是如此。这是MAIN中的.htaccess:

RewriteEngine On
Options +FollowSymLinks
RewriteBase /

# Display PARKED domain to user for all pages in MAIN/PARKED directory
RewriteCond %{HTTP_HOST} ^(www\.)?PARKED\.?(:[0-9]+)?$ [NC]
RewriteCond $1 !^PARKED/
RewriteRule ^(.*)$ PARKED/$1 [L]

# BEGIN WordPress
#RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

更复杂的是,我的Wordpress网站位于MAIN / PARKED。我做了更改Wordpress中的任何规则,因为我想.htaccess来处理它。

上面的.htaccess似乎在所有情况下都能正常工作除了,当用户手动输入我上面的2-deep示例时:MAIN / PARKED /子文件夹/页面或MAIN / PARKED。然后我收到404.如果你输入PARKED /子文件夹/页面,它表现得很完美。

任何智慧之词的TIA。

迈克尔

1 个答案:

答案 0 :(得分:1)

# BEGIN WordPress
<IfModule mod_rewrite.c>
# tell mod_rewrite to activate and give base for relative paths

RewriteEngine on

RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?PARKED.com$
RewriteCond %{REQUEST_URI} !^/PARKED/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /PARKED/$1 

RewriteCond %{HTTP_HOST} ^(www.)?PARKED.com$
RewriteRule ^(/)?$ PARKED/index.php [L]

# for main domain

RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]

</IfModule>

# END WordPress