0

次のような恐ろしい URL があります。

http://example.com/subfolder/index.php?a=1&b=1&token=8d519decbe60db44154b1fbc8c553ac4

私はそれを次のようにしようとしています:

http://example.com/subfolder/menu/1/1/#/

しかし、このコードはページがクラッシュする/見つからないなどの原因となっています:

RewriteEngine on

RewriteCond %{QUERY_STRING} ^a=([0-9]+)&b=([0-9]+)&token=([A-Za-z0-9]+)
RewriteRule ^subfolder/index.php /menu/$1/$2/#? [R=301,L]

この.htaccessファイルをルート フォルダーexample.com/.htaccessに配置しましたが、サブフォルダーに配置する必要がありますか?

404 ページが見つかりませんというエラーが発生しました。

4

2 に答える 2

1

書き換えられた URL に「サブフォルダー」を含めたくありませんか?

RewriteRule ^subfolder/index.php /subfolder/menu/$1/$2/#? [R=301,L]

于 2012-04-29T01:41:29.177 に答える
1

別のアプローチを試してください。

RewriteEngine On
RewriteBase /subfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9]+)/([0-9]+)/([0-9]+)/$ index.php?a=$1&b=$2&token=$3 [L,QSA]

出力: (http://example.com/subfolder/menu/1/1/#/)

<?php 
print_r($_GET);
Array
(
    [a] => menu
    [b] => 1
    [token] => 1
)
?>

またはhttp://example.com/subfolder/menu/1/18d519decbe60db44154b1fbc8c553ac4/#/

RewriteEngine On
RewriteBase /subfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9]+)/([0-9]+)/([A-Za-z0-9]+)/$ index.php?a=$1&b=$2&token=$3 [L,QSA]

アップデート:

RewriteEngine On
RewriteBase /subfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9]+)/([0-9]+)/([0-9]+)/([A-Za-z0-9]+)/$ index.php?a=$2&b=$3&token=$4 [L,QSA]

一致します:mysite.com/subfolder/menu/1/2/blah123

そしてに渡すindex.php?a=1&b=2&token=blah123

更新 2 (サブフォルダーがないため - コメントを参照):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/([0-9]+)/([0-9]+)/([A-Za-z0-9]+)/$ index.php?a=$3&b=$4&token=$5 [L,QSA]

一致します:mysite.com/subfolder/menu/1/2/blah123

そしてに渡すindex.php?a=1&b=2&token=blah123

このサイトを読んでください: http://corz.org/serv/tricks/htaccess2.php

于 2012-04-29T01:52:03.807 に答える