我在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')
打开包含该网址的文章
对于每个页面都需要重写。显示的网址应为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原因,我无法使用规范网址。
答案 0 :(得分:1)
首先不要忘记在一开始就添加它:
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]
最好的运气
答案 1 :(得分:1)
你应该添加:
<base href="/"/>
在<head>
部分。