1

サイト内のすべてのページにきれいなリンクを作成しようとしていfoo.com/services/domesticますfoo.com/index.php?page=services-domesticfoo.com/services/domestic/case/1.htaccess ファイルに次のものがあり、上記の例では正常に動作していますが、 (期待して) に移動しようとすると/index.php?page=services-domestic-case-1、404 が表示されます。

# a/b/c/d -> a-b-c-d
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9_-]+)$ $1-$2 [N]

# a-b-c-d -> index.php?page=a-b-c-d
RewriteRule ^([^(/|\.)]+)$ index.php?page=$1

[N]フラグなしで行を3回繰り返してみましたが、役に立ちませんでした。最初の深さ以外では機能しません。おそらく私のアマチュア正規表現ですが、何が壊れているのか理解できません。何かアイデアはありますか?

4

2 に答える 2

0

これを試して :

RewriteRule ^([\w-]+)/([\w-]+)$ $1-$2 [N]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?page=$1
于 2012-08-13T15:43:41.573 に答える
0

正規表現を微調整してフラグを書き直すだけでよいようです。

# a/b/c/d -> a-b-c-d
RewriteRule ^(.*)/(.*) /$1-$2 [L]

# a-b-c-d -> index.php?page=a-b-c-d
RewriteRule ^([^/.]+)$ /index.php?page=$1 [L]
于 2012-08-13T17:47:50.010 に答える