首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache2.2 mod_rewrite帮助

Apache2.2 mod_rewrite帮助
EN

Stack Overflow用户
提问于 2011-06-02 04:20:41
回答 3查看 742关注 0票数 0

我试图让Apache2.2 mod_rewrite获得干净的urls。我有一些链接,比如

代码语言:javascript
复制
<ul>
<li><a href="index.php?view=pageName">Page Name</a></li>
<li><a href="index.php?view=pageName2">Page Name2</a></li>
<li><a href="index.php?view=pageName3">Page Name3</a></li>
</ul>

而url出来的时候

代码语言:javascript
复制
http://example.com/user/index.php?view=pageName

我想把地址栏里的网址清理到这个

代码语言:javascript
复制
http://example.com/user/pageName

编辑:如果有什么用的话,这就是我的httpd.conf中的东西。

代码语言:javascript
复制
<Directory "C:/Apache2.2/htdocs/user">
    Options Indexes FollowSymLinks
    AllowOverride all
    order allow,deny
    Allow from all
</Directory>

使用phpinfo(),我已经验证了mod_rewrite是加载的,并且我的.htaccess (用户文件,而不是根.htaccess)中有这个,而不是apache上的虚拟用户。

代码语言:javascript
复制
RewriteEngine on
RewriteBase /user/ #Edited rewrite base added in, but not helping much.
RewriteOptions Inherit
RewriteRule ^/user/([a-zA-Z])/?$ index.php?view=$1  [NC,L] 

编辑:我的.htaccess的其余部分

代码语言:javascript
复制
#Ensure browser reads Header
Header unset ETag
FileETag None
Header unset Last-Modified

#Set caching expires
Header set Expires On
ExpiresDefault "access plus 30 days"

#gzip
<FilesMatch "\.(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>

在html结构中相同且不能正常工作的所有菜单链接上,都不能正常工作。IE:它将我发送到http://example.com/user/?view=pageName,但正在加载根HTML文件内容。

如果我改变了这一行

代码语言:javascript
复制
RewriteRule ^/user/([a-zA-Z])/?$ index.php?view=$1  [NC,L]

代码语言:javascript
复制
RewriteRule ^index\.php$ http://www.google.com  [NC,L]

我会像预期的那样被送到谷歌。很明显,我在匹配和替换方面肯定做错了什么,但我做错了什么呢?提前谢谢。

编辑:、access.log和error.log都没有错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-03 00:05:17

固定:必须更改HTML样式以用作

代码语言:javascript
复制
<a href="pageName">Page Name</a>

然后在.htaccess

代码语言:javascript
复制
RewriteEngine On
RewriteOptions Inherit
ReWriteBase /user/
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?view=$1 [QSA,L]

还必须从apache的mod_cache.so中禁用httpd.conf,因为如果有任何缓存留下,它会干扰重写。希望这有助于其他人使干净的urls工作。

票数 0
EN

Stack Overflow用户

发布于 2011-06-02 09:16:13

代码语言:javascript
复制
RewriteRule ^/user/([a-zA-Z]+)?$ index.php?view=$1  [NC,L]

你错过了+,所以你不是在匹配单词,只是一个字符

票数 3
EN

Stack Overflow用户

发布于 2011-06-02 04:33:54

代码语言:javascript
复制
RewriteRule ^/user/([a-zA-Z])?$ index.php?view=$1  [NC,L] 

试试这个.(去掉一个斜杠)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6210320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档