2014-10-30 97 views
2

我正在使用這兩行來重寫任何URL,例如www.example.com/spyke(其中spyke是用戶名,可以是任何用戶名)..在.htaccess中重寫URL(文件夾名稱爲自定義URL,文件夾名稱爲變量值)

RewriteCond %{REQUEST_URI} ^/([^/]+)? [NC] 

RewriteRule ^/([^/]+)? http://www.example.com/index.php?id=82&user=$1 [L,R=301] 

這種近乎工作,但該系統目前被重定向到URL是:

www.example.com/index.php?id=82&user=index.php

..而不是

www.mydomain.com/index.php?id=82&user=spyke

1)所以我想重寫www.mydomain.com/spyke到www.example.com/index.php?id=82&user=spyke ..有沒有人知道如何實現這個?

2)另外,我希望用戶在地址欄中看到www.example.com/spyke而不是www.example.com/index.php?id=82&user=spyke - 這也可能嗎?

謝謝!!!!!

羅埃爾

這裏是我的(更新)htaccess文件BTW:

RewriteEngine敘述在

重寫規則^/TYPO3 $ - [L] 重寫規則^/TYPO3 /.*$ - [L]

RewriteCond%{REQUEST_FILENAME}!-f

的RewriteCond%{REQUEST_FILENAME}!-d

的RewriteCond%{REQUEST_FILENAME}!-l

重寫規則。*的index.php

重寫規則^ /([A-ZA-Z0-9_- ] +)? http://www.example.com/index.php?id=82&user= $ 1 [L,R = 301]

..

但這只是導致該鏈接: http://www.example.com/index.php?id=82&user=index

+1

如何將'user'翻譯成'id'? – anubhava 2014-10-30 08:42:25

+1

id始終爲82;它的「用戶」需要變量 – 2014-10-30 09:02:25

回答

2

使用本htaccess的:

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?id=82&user=$1 [L] 
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?id=82&user=$1 [L] 

當此網址:「www.example.com/spyke」要求

此htaccess加載「index.php?id = 82 & user = spyke」而不是!

這條線加載一個文件,如果存在!

RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.*$ - [NC,L] 

如果請求的URL不是文件,然後加載「index.php?ID = 82 &用戶= [字符串]」

+0

感謝您的貢獻:) 但是,這似乎不起作用,當我輸入example.com/theuser時,沒有任何更改。我只收到文件/頁面未找到錯誤。 順便說一下,這個作品: RewriteRule^/([a-zA-Z0-9 _-] +)? http://www.example.com/index.php?id=82&user=$1 [L,R = 301] 但結果在www.example.com(..)&user = index而不是(..)&user =用戶名 當我替換這個^ /([a-zA-Z0-9 _-] +)?由此^ /([a-zA-Z0-9 _-] +)$ - 替換?對於$ - 它不起作用(根本沒有htaccess活動可言)。因此,出於某種原因,$在那個地方不適合我... – 2014-10-30 09:06:09

+0

@R_K:清除瀏覽器緩存並重新測試。 – anubhava 2014-10-30 10:09:12

+0

請在我的主要帖子/問題中看到我的(更新的)htaccess文件。這隻會導致http://www.example.com/index.php?id=82&user=index而不是http://www.example.com/index.php?id=82&user=username – 2014-10-30 10:43:45

0

試試這個:

RewriteRule ^author/(.+)$ index.php?pagename=books&author=$1 

我在這裏找到:Redirect number 5

在你的情況,你應該用:

RewriteRule ^(.+)$ index.php?id=82&user=$1 
相關問題