.htaccess在重定向后隐藏子目录url
我正在将网站重定向到我创建的子目录。子目录包含WordPress的安装,现在我想从网站屏蔽子目录url 现在有点像 我想从URL中删除/apt/ 今天我尝试了一切,在谷歌上搜索,尝试在我在这里找到的htaccess上写各种东西,但没有任何效果 在站点主目录的htaccess上,我使用此代码重定向.htaccess在重定向后隐藏子目录url,.htaccess,redirect,url-rewriting,url-masking,.htaccess,Redirect,Url Rewriting,Url Masking,我正在将网站重定向到我创建的子目录。子目录包含WordPress的安装,现在我想从网站屏蔽子目录url 现在有点像 我想从URL中删除/apt/ 今天我尝试了一切,在谷歌上搜索,尝试在我在这里找到的htaccess上写各种东西,但没有任何效果 在站点主目录的htaccess上,我使用此代码重定向 RewriteCond %{HTTP_HOST} ^mywebsite.com$ [OR] RewriteCond %{HTTP_HOST} ^www.mywebsite.com$ RewriteRul
RewriteCond %{HTTP_HOST} ^mywebsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mywebsite.com$
RewriteRule ^/?$ "http\:\/\/www\.mywebsite\.com/\apt" [R=301,L]
在/apt/文件夹中的一个上
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /apt/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /apt/index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/apt/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/apt/index.php[L]
#结束WordPress
有人能告诉我如何在URL中隐藏/apt/扩展名吗?
非常感谢。如果要从url中删除/apt,为什么要将“/”重定向到“/apt”? 试试这个:
RewriteRule !^apt/ /apt%{REQUEST_URI} [L,NC]
而不是
RewriteRule ^/?$ "http\:\/\/www\.mywebsite\.com/\apt" [R=301,L]
通过此重写,您应该可以在url www.mywebsite.com下的/apt文件夹中看到您的应用程序
移除重定向部分,然后使用此insead:
RewriteCond %{THE_REQUEST} ^GET\ /apt/
RewriteCond %{HTTP_HOST} ^(www\.)?mysite.com$
RewriteRule ^apt/(.*) /$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?mysite.com$
RewriteRule !^apt/ apt%{REQUEST_URI} [L]
然后对主网站使用相同的代码。在根文件夹中创建一个.htaccess文件,并将此内容放入其中(只需更改example.com
和my_subdir
):
重新启动发动机
重写cond%{HTTP_HOST}^(www.)?example.com$
重写cond%{REQUEST_URI}^/我的房间/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/my_subdir/$1
重写cond%{HTTP_HOST}^(www.)?example.com$
重写规则^(/)?$my_subdir/index.php[L]
我更新了答案,因为我发现了一些错误,请尝试这个新版本:RewriteRule^apt//apt%{REQUEST_URI}[L,NC]工作得很有魅力!谢谢!每一行的详细解释都会将这个平庸的答案转化为优秀的答案。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/my_subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_subdir/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir/index.php [L]
</IfModule>