2014-01-11 63 views
0

我知道這個問題以前可能已經被問過很多次了,我可能會被低估,但是相信我,這是我測試並閱讀google上很多文章後的最後一招。使用mod重寫來清理我的網址

我有我想要改寫爲/gametypes/control-point的網址/index.php?action=gametypes&mode=control-point

我已經試過

RewriteEngine On 
RewriteRule ^gametypes/([^/\.]+)/?$ index.php?action=gametypes&mode=$1[L] 

現在,當我訪問/gametypes/control-point我收到沒有找到404和URL重寫顯示對localhost/thecoremc/gametypes/control-point/index.php。這是一個404,因爲沒有index.php。任何想法我可以用來成功加載頁面?

額外的信息:我運行我的本地主機與域localhost/thecoremc/和Apache 2.4.4

謝謝!

+0

'的index.php action' ...? – Jon

回答

1

你可以試試這個,而不是...

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?action=$1&mode=$2 [L] 

我用一個虛擬域,這是http://www.domain.com/index.php?action=gametypes&mode=control-point實現這一目標。

基於您的評論,試試這個...

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)\.html$ /thecoremc/index.php?action=$1&mode=$2 [L] 

這是基於:http://localhost/thecoremc/index.php?action=gametypes&mode=control-point

+0

當'http:// localhost/thecoremc/gametypes/control-point /'我得到了404。 – somethinghereplease1

0

您可以在/thecoremc/.htaccess文件中使用此代碼:

RewriteEngine On 
RewriteBase /thecoremc/ 

RewriteRule ^([^/]+)/([^/]+)/?$ index.php?action=$1&mode=$2 [L,QSA] 
+0

這工作但所有樣式都丟失。通過檢查員,我看到所有鏈接的URL都是'http:// localhost/thecoremc/gametypes/control-point /(paths)' – somethinghereplease1

+0

對於css/js/images,在你的css,js,images中使用絕對路徑文件而不是相對的文件。這意味着你必須確保這些文件的路徑以'http://'或斜槓'/'開始。或者,您可以嘗試在頁面的標題中添加以下內容:'' – anubhava

0

試試這個。這可能對你的工作有幫助。

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{QUERY_STRING} ^id=(.*)&name=(.*)$ 
RewriteRule ^articles\.php$ /article/%1/%2? [R=301] 
RewriteRule ^article/([^-]+)/([^-]+)$ /articles.php?article_id=$1&article_name=$2 [L] 

上面的代碼會重定向

localhost/a1/articles.php?id=10&name=xyz 

localhost/article/10/xyz 
0

試試這個:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule gametypes/(.*)/(.*)/ index.php?action=$1&mode=$2