2015-04-02 111 views
1

我有這個頁面是daynamic與URL參數:重定向頁面,如果改變它的URL發生

/artandculture/details.php?articleid=28208&parentid=1&catid=166 

,我想,如果在URL用戶的變化,然後將其重定向到主網址,如發生任何變化URL然後重定向到:

/artandculture/details.php?articleid=28208&parentid=1&catid=166 

是否與.htaccess解決方案?

+0

需要更多信息:你的意思是什麼改變?你能舉出你想重定向的示例URL嗎? ** | **按照我的理解,如果用戶在參數名稱中更改或者在'details.php'之後有一些錯誤的語法,您希望重定向,則可以更改GET值(主要是整數)來創建動態頁面。 **和**網址之前**?**不容易知道的變化因爲你會有一些其他網頁 - 在您的網站的網址。 – 2015-04-02 06:55:45

+0

假設用戶(網站的訪問者)將URL改爲:/artandculture/details.php,那麼我希望它重定向到主URL:/artandculture/details.php?articleid=28208&parentid=1&catid=166 – Kaveh 2015-04-02 07:02:28

+0

如果用戶剛剛輸入'/artandculture/details.php'應該總是被重定向到'/artandculture/details.php?articleid = 28208&parentid = 1&catid = 166'? – anubhava 2015-04-02 09:28:00

回答

0

您的確認後,嘗試這種解決方案與htaccess的

RewriteEngine On 

RewriteCond %{REQUEST_URI} ^/artandculture/details\.php 
RewriteCond %{QUERY_STRING} !^articleid=[0-9]+&parentid=[0-9]+&catid=[0-9]+$ 
RewriteRule .* /artandculture/details.php?articleid=28208&parentid=1&catid=166 [L,NC,R=307] 

RewriteCond將要檢查的請求的URI是你perticuler頁面,然後接下來會EXCUTE。接下來RewriteCond將檢查GET參數是否存在或格式錯誤,然後將URL更改爲主頁面。

從最後一條規則中刪除,R=307將不會重定向(更改瀏覽器中的地址),這將只顯示包含用戶更改URL的主頁面。

+0

是的,你是理解我的問題的權利,但代碼不起作用,不重定向,請注意,我只給了一個例子,任何更改該網址或網址喜歡它,它必須重定向。 – Kaveh 2015-04-02 08:04:56

+0

在我的htaccess文件頂部有:'RewriteEngine on'以及爲什麼你在代碼之前放置了標籤(#),我的代碼沒有(#)。 – Kaveh 2015-04-02 08:11:09

+0

@Kaveh:抱歉,錯誤並感謝您通知(#)錯誤。實際上,第二個條件應該只檢查'QUERY_STRING',這是錯誤。我編輯了答案,檢查一下。 – 2015-04-02 08:39:16