2016-08-31 51 views
0

我有這樣的代碼來打開mywebsite.com/any-post-name如何在不影響其他頁面的情況下在htaccess中打開mypage.com/link-page?

RewriteRule ^([a-zA-Z0-9_-]+)$ home.php?id=$1 [L,QSA] 

的問題是,如果有人類型:mywebsite.com/any-post-name /的頁面不會打開。 所以我想補充:

RewriteRule ^([a-zA-Z0-9_/-]+)$ home.php?id=$1 [L,QSA] 

現在,其他每一頁轉到home.php過,例如,我有類: mypage.com/category/name-category - >會來home.php

RewriteRule ^category/([^(.*)].+)/(\d+)/?$ category.php?categoria=$1&id=$2 

如何解決這個問題?

+0

嘗試'home.php $',而不是'home.php ID = $ 1' – Perspective

回答

1

/放在字符類中可以多次使用,因爲量詞(+)。如果你把它移動到正則表達式的末尾並使其成爲可選項,它應該適合你。

^([a-zA-Z0-9_-]+)/?$ 

演示:https://regex101.com/r/jA0oZ1/3

^([^/]+)/?$ 

演示:https://regex101.com/r/jA0oZ1/4

+0

非常感謝你許多!我有一個頁面調用/類/打開allcategories.php,它與這個正則表達式匹配......我該如何解決這個問題? RewriteRule^category /?$ allcategories.php如果在你的正則表達式之前放一個好主意? –

+1

在這種情況下,我會製作一個更加結構化的URL,否則你將不得不爲每個根頁面編寫一個規則(不應該將其指向「home.php」頁面)。在重寫之前是'RewriteCond%{THE_REQUEST}!^ category /?$'。 – chris85

相關問題