我有一些問題與國防部重寫。服務器是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的/網站可用/默認看起來是這樣的:
<VirtualHost *:80>
ServerAdmin [email protected]
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>
我還沒除了目錄/的AllowOverride改變任何東西有所有
的.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]
而且我已經運行服務apache2重新啓動無盡的時間。
該網址工作正常:
/showimage.php?model=Ai&image=12
這一個不:
/Ai/12
HELP!
嗨,謝謝你的幫助。我沒有得到一個「空」的網址,即www.website.com。我正在收到首頁,這很好。但要求例如www.website.com/name/123給出了404,而www.website.com/showimage.php?model=name&image=123正常工作。 – Jesper 2013-05-02 22:35:14
您可以在重寫規則之前添加以下行:'RewriteBase /'。讓我知道它是否做了任何事情。 – 2013-05-02 22:36:13
我試圖通過添加到這一點的.htaccess接通重寫日誌: RewriteEngine敘述在 RewriteLog 「/etc/apache2/logs/rewrite.log」 RewriteLogLevel 9 重寫規則^([^ /] +)/([O- 9] +)/?$ showimage.php?model = $ 1&image = $ 2 [R,L,NC,QSA] RewriteRule ^([^ /] +)/?$ model.php?model = $ 1 [R,L ,NC,QSA] ...但文件夾/ etc/apache2/logs保持爲空 – Jesper 2013-05-02 22:37:05