尽管存在数千个与此类似的问题,但我无法使其适用于这种特定情况。
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]
答案 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]