清理URL - 如何编辑url变量以编辑url name&使用htaccess删除重定向上的文件夹名称?

时间:2013-11-19 16:53:14

标签: regex .htaccess url redirect

尽管存在数千个与此类似的问题,但我无法使其适用于这种特定情况。

删除重定向上的文件夹名称

public_html+
|
|    htaccess
|    robots.txt
|
|    libraries+
|    |   classOne.php
|    |   classTwo.php
|
|    webroot+
|    |   css
|    |   images
|    |   js
|    |   index.php
|    |   article.php

以下似乎总是将我的主域名重定向到我想要的webroot /但是如何从URL中删除webroot文件夹名称以便它看起来像

www.example.com / 代替 的 www.example.com/webroot

我正在使用以下代码..

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

掩码变量&包括文件夹名称

我有一篇article.php,我想编辑网址,以便更好地寻找SEO。

在我的真实域名中,它现在显示如下..

www.example.com/webroot/article.php?article_uid=33&article_title=Apple,%20Microsoft%20And%20Free%20Software

我想编辑上面这样显示..

www.example.com/article/id/title-goes-here

我尝试使用以下代码,但一切都没有改变。我唯一不知道如何在标题中添加斜杠。

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^article/([^/]+)/([^/]+)/?$ webroot/article.php?article_uid=$1&article_title=$2 [QSA,L,NC]

1 个答案:

答案 0 :(得分:1)

在文档根目录中的htaccess文件中,请尝试以下规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /webroot/article\.php\?article_uid=([^&]+)&article_title=([^&\ ]+)
RewriteRule ^ /article/%1/%2/? [L,R=301,NE]

RewriteCond %{THE_REQUEST} \ /webroot/
RewriteRule ^webroot/(.*)$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^article/([^/]+)/([^/]+)/?$ /webroot/article.php?article_uid=$1&article_title=$2 [QSA,L,NC]

RewriteCond %{REQUEST_URI} !^/webroot/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /webroot/index.php [L]