题 如何使用htaccess从url中删除文件夹名称


我想更改以下网址:

http://domain.com/Portfolios/iPhone/app

至:

http://domain.com/iPhone/app

对于所有网址都是如此:

domain.com/Portfolios/iPad/app

至:

domain.com/iPad/app

来自:

domain.com/Portfolios/xyz/app

至:

domain.com/xyz/app

我已经尝试了很多,但没有什么对我有用,所以请帮助我。

当我需要帮助时,为什么任何一个伙伴投票,如果你知道答案然后回答它。

更新

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule ^Portfolios(/.*|)$ $1 [L,NC]  
</IfModule>

13
2017-09-24 04:39


起源




答案:


启用 mod_rewrite 和 .htaccess 通过 httpd.conf 然后将此代码放入您的 .htaccess 下 DOCUMENT_ROOT 目录

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^Portfolios/(.*)$ /$1 [L,NC,R]

说明: 以上规则是匹配以...开头的URL模式 Portfolios 并且有类似的东西 /Portfolios/xyz/app 和放 xyz/app 在 $1。它进行外部重定向 /$1 即 /xyz/app

这些是使用的标志:

L  - Last
NC - Ignore (No) Case comparison
R  - External redirection (with 302) -- can be changed to R=301

22
2017-09-24 04:41



当我尝试RewriteRule ^ Portfolios(/.* |)$ $ 1 [L,NC]时没有效果,当我尝试RewriteRule ^ Portfolios(/.* |)$ $ 1 [L,NC,R = 301]它重定向时文件夹结构C:/ wamp / www / project ... - anytime
我试过网址: domain.com/Portfolios/iPad/app 和htaccess放在root中 - anytime
@anytime:我相信 Portfolios 是DOCUMENT_ROOT正下方的文件夹是正确的吗? - anubhava
@anubhava是伙计,谢谢你的帮助:),我想启用两个网址:domain.com/Portfolios & domain.com/iPhone/app (重定向自 domain.com/Portfolios/iPhone/app) - anytime
@anytime:你能试试这个规则: RewriteRule ^Portfolios/(.*)$ /$1 [L,NC,R] 让我知道 - anubhava


您还可以将DocumentRoot行设置为/ var / www / Portfolios而不是/ var / www / in / etc / apache2 / sites-enabled

DocumentRoot / var / www / Portfolios

代替 DocumentRoot / var / www / 还有这条线 <目录/ var / www />已更改为

<目录/ var / www / Portfolios />


1
2018-03-25 07:23