1

Mod_Rewrite で Web サイトを作成しています。現時点では、すべての URL が.php末尾にあるページ名にリダイレクトされます。

ただし/about/、 andは and/photos/にリダイレクトする必要がpage.php?page=aboutありpage.php?page=photosます。

これを行う方法はありますか?

現在のコード:

RewriteEngine on RewriteBase /new/ 
RewriteRule ^about/$ /new/page.php?page=about [L] 
RewriteRule ^([^/]*)/$ /new/$1.php [L] 
RewriteRule ^blog/([^/]*)/$ /new/blog.php?page=$1 [L] 
RewriteRule ^blog/post/([^/]*)/$ /post.php?post=$1 [L] 
RewriteRule ^blog/category/([^/]*)/$ /category.php?category=$1 [L]
4

3 に答える 3

1

これは、あなたの望むことですか?

RewriteRule ^blog(/?)$ /new/blog.php [L]
RewriteRule ^blog/([^/]*)(/?)$ /new/blog.php?page=$1 [L]
RewriteRule ^blog/post/([^/]*)(/?)$ /post.php?post=$1 [L]
RewriteRule ^blog/category/([^/]*)(/?)$ /category.php?category=$1 [L]
RewriteRule ^(?!blog)([^/]*)(/?)$ page.php?page=$1 [L]
于 2012-07-03T18:57:16.317 に答える
0

簡単だ:

RewriteRule ^about/$ page.php?page=about 
RewriteRule ^photos/$ page.php?page=photos 
于 2012-07-03T18:41:34.173 に答える
0
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)/$ /page.php?page=$1 [L,QSA]
</IfModule>

[L] ディレクティブは「最後」を意味するため、これが一致した場合、それ以上の書き換えルールは適用されません。

[QSA] ディレクティブを使用すると、書き換えられたアドレスにクエリ パラメータを追加できます。

ブログを書き直す場合は、このルールを最後に設定するだけです。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^(.*)/$ /new/$1.php 
    RewriteRule ^blog/(.*)/$ /new/blog.php?page=$1 [L] 
    RewriteRule ^blog/post/(.*)/$ /post.php?post=$1 [L] 
    RewriteRule ^blog/category/(.*)/$ /category.php?category=$1 [L]

    RewriteRule ^(.*)/$ /page.php?page=$1 [L,QSA]
</IfModule>
于 2012-07-03T18:55:09.600 に答える