0

これらの URL を書き換える mod-rewrite に問題があります。

mywebsite.com/index.php?page=folder/file
mywebsite.com/index.php?page=folder/file&id=10

これらに

mywebsite.com/file
mywebsite.com/file/10

どうやってやるの?

4

3 に答える 3

2

これに似たものが欲しい

#With mod_rewrite
RewriteEngine on
RewriteRule   ^/file/(.+)  /index.php?page=folder/file&id=$1 [R,L]
RewriteRule   ^/file       /index.php?page=folder/file [R,L]
于 2013-04-03T01:31:35.560 に答える
2

mywebsite.com/index.php?page=folder/file
mywebsite.com/index.php?page=folder/file&id=10
これらに
mywebsite.com/file
mywebsite.com/file/10

フォルダーが固定文字列なのか、ファイルがあるディレクトリなのかは明確ではないため、この回答では、両方の場合のディレクトリがルートであるため、固定文字列であると想定されています。

ルート ディレクトリにある .htaccess ファイルでこれを試すことができます。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !index\.php  [NC]
RewriteRule  ^([^/]+)/?$  /index.php?page=folder/$1 [L,NC]

RewriteCond %{REQUEST_URI}  !index\.php  [NC]
RewriteRule  ^([^/]+)/([^/]+)/? /index.php?page=folder/$1&id=$2  [L,NC]

サイレント マップ:

http://mywebsite.com/file
http://mywebsite.com/index.php?page=folder/file

http://mywebsite.com/file/10
http://mywebsite.com/index.php?page=folder/file&id=10

ここで、strings file10は動的であると想定されます。

永続的なリダイレクトの場合、[L,NC] を [R=301,L,NC] に置き換えます。

于 2013-04-03T06:40:09.283 に答える
0

書き換えて、リダイレクトmywebsite.com/$varしたくないということですか?これを確認できます:mywebsite.com/index.php?page=folder/$varmywebsite.com/$var1/$var2mywebsite.com/index.php?page=folder/$var1&id=$var2

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([a-z0-9-_]+)$ /index.php?page=folder/$1

RewriteRule ^([a-z0-9-_]+)/([a-z0-9-_]+)$ /index.php?page=folder/$1&id=$2
于 2013-04-03T07:38:38.437 に答える