我在名爲blog的文件夾內有一個名爲index.php的PHP腳本。有三種不同的觀點。Apache Mod-重寫問題
我想改變基於URL的看法http://www.myDomain.com/blog/index.php?post=name的http://www.myDomain.com/blog/index.php?tags=list。
- /博客重定向到數1以上
- /博客/名稱的類別重定向到numbe 2以上
- /博客/名稱的類別/名稱的-交重定向到3號以上。
現在我有以下mod_rewrite規則。
RewriteRule ^blog$ blog/index.php [L]
RewriteRule ^blog/(.+)/(.+)$ blog/index.php?post=$2 [L]
RewriteRule ^blog/(.+)$ blog/index.php?tags=$1 [L]
這不起作用,我不知道爲什麼。現在,它總是重定向到一個網址:
blog/index.php?tags=$1
而GET數據包含「的index.php」。
而且,如果一個斜槓添加到最終規則像這樣:
RewriteRule ^blog/(.+)/$ blog/index.php?tags=$1 [L]
所有重定向做工精細。問題是,我需要在URL末尾有正斜槓,如果我想要類別視圖。
任何想法發生了什麼?我如何解決這個問題?
感謝您的回覆。我發現我的問題是在名爲「blog」的文件夾中存在我的腳本的副作用。以下是index.php的樣子:
<?php
define ('BASE_PATH', "../blog/");
include_once(BASE_PATH . 'controller/Controller.php');
$controller = new Controller();
$controller->invoke();
看到問題了嗎?由於我的腳本的基本路徑是「博客」,mod_rewrite正在重寫程序中的所有引用。通過將我的腳本文件夾重命名爲blogScript,它解決了問題。
這是爲了答覆,我會記住的。 char – user182666 2009-12-29 01:00:39