虚拟目录htaccess和url重写



我有一个php网站,它有一些页面:

www.example.com/news
www.example.com/people
www.example.com/music

每一页都有一个内容概述。例如,如果你点击www.example.com/news上的链接,一篇文章就会使用模板(www.example.com/article.php?url='example-of-article-url') 打开该url

每一页都需要重写。显示的url应为www.example.com/news/example-of-article-url这应该会访问article.php文件。新闻目录是虚拟的。www.example.com/news、www.example.com/people和www.example.com/music正在被以下代码重写:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ $1.php [L,QSA]

我一直在尝试的是:

RewriteRule ^news/(.*) article.php?url='$1' [R=301,L]

然而,当加载该文件时,css和图像不会。生成内容时认为它在/news/目录中,因此无法找到其他文件。由于SEO的原因,我不能使用规范的URL。

您应该添加:

<base href="/"/>

在您的<head>部分中。

首先不要忘记在一开始就添加这个:

RewriteEngine On

从你的最后一行"$1"中删除Qoutes,然后尝试下面的方法。

RewriteEngine On
RewriteRule ^news/(.*)$ article.php?url=$1 [R=301,L]

要将整个目录的内容重定向到您的位置:

RewriteEngine On
RewriteRule ^news/(.*)$ article.php?url=$1 [R=301,NC,L]

或者你也可以用这种方式在开始时猛击:

将整个文件夹(新闻)重定向到新位置:

RewriteEngine On
RewriteRule ^/?news/(.*)$ article.php?url=$1 [R=301,L]

RewriteEngine On
RewriteRule ^/news/(.*)$ article.php?url=$1 [R=301,L]

要将整个目录的内容重定向到您的位置:

RewriteEngine On
RewriteRule ^/news/(.*)$ article.php?url=$1 [R=301,NC,L]

好运

最新更新