【发布时间】:2013-02-19 05:10:11
【问题描述】:
我正在尝试重写一个用于 SEO 的 URL。
旧网址是:
http://www.domain.net/index.php?p=beer
新的网址应该是:
http://www.domain.net/beer
我在 .htaccess 中的代码是:
RewriteRule ^([^/\.]+)/?$ index.php?p=$1
即使经过数小时的研究,我也不知道为什么这不起作用:(
这是完整的 .htaccess:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} Teoma
RewriteRule ^.* - [F]
rewritecond %{HTTP_HOST} !^www\.domain\.net$ [NC]
rewriterule ^(.*)$ http://www\.domain\.net/$1 [R=301,L]
RewriteCond %{QUERY_STRING} ^p=uppic$
RewriteRule ^index\.php$ /? [L,R=301]
RewriteRule ^([^/\.]+)/?$ index.php?p=$1
# Pwd service
AuthType Basic
AuthName "Service"
AuthUserFile /xxxx/www/xxxxxx/xxxxx/xxxxxx/.htpasswd
<Files admin.php>
Require user xxxxxxx
</Files>
Options -Indexes
提前致谢!
我对这段代码的最后一个问题是:
RewriteRule ^([^/\.]+)/?$ index.php?p=$1
使工作:
http://www.domain.net/beer
啤酒指的是那个页面:
http://www.domain.net/index.php?p=beer
这太棒了!但如果我在啤酒后面加一个 /,例如:
http://www.domain.net/beer/
我的 beer.php 文件运行在另一个路径,所以没有包含 css、图像、js 等。有什么想法可以在不将 html 更改为 http://www.domain.net/style.css ... 的情况下解决这个问题吗?
【问题讨论】:
标签: .htaccess url-rewriting query-string