【发布时间】:2013-05-03 07:18:44
【问题描述】:
我在使用 mod 重写时遇到了一些问题。服务器是 Ubuntu 12.04、Apache2、Php 5.4。
我想要这样的网址:
www.website.com/<modelName>/<imageNumber>
和
www.website.com/<modelName>
实际展示:
www.website.com/showimage.php?model=<modelName>&image=<imageNumber>
和
www.website.com/model.php?model=<modelName>
我已将其放入 .htaccess 中:
RewriteEngine On
RewriteRule ^([^/]+)/([0-9]+)/?$ showimage.php?model=$1&image=$2 [R,L,NC,QSA]
RewriteRule ^([^/]+)/?$ model.php?model=$1 [R,L,NC,QSA]
我已经检查了 mod_rewrite 是否已加载到 apache 中。 但是页面并没有重定向。
编辑:澄清一下,结果是 404 '资源/在此服务器上不存在'和'资源//在此服务器上不存在'。
奇怪的是,我昨天还在玩它,并试图制定一个包含 website.com/model/modelName 的规则,而且现在似乎已经生效并且无法摆脱的。我尝试了十次重新启动 Apache,清除浏览器缓存,甚至安装了另一个我以前没有的浏览器,但昨天的顽固重定向即使在新浏览器 (FireFox) 中也继续进行。
我写的新重定向规则是否正确?
我如何将它们付诸实践?
我应该在 .htaccess 上设置 chmod 777 吗?
非常感谢...
编辑:这里有更多信息。
我只有一个(默认)站点,文件(包括 .htaccess)只是位于 /var/www
文件 /etc/apache2/sites-available/default 如下所示:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
除了 Directory / AllowOverride All 之外,我没有更改任何内容
.htaccess 看起来像这样:
RewriteEngine On
RewriteLog "/etc/apache2/logs/rewrite.log"
RewriteLogLevel 9
RewriteBase /
RewriteRule ^([^/]+)/([0-9]+)/?$ showimage.php?model=$1&image=$2 [R,L,NC,QSA]
RewriteRule ^([^/]+)/?$ model.php?model=$1 [R,L,NC,QSA]
我已经运行 service apache2 restart 无数次了。
这个网址很好用:
/showimage.php?model=Ai&image=12
这个没有:
/Ai/12
帮助!
【问题讨论】:
标签: mod-rewrite apache2