1

書き換えルールをセットアップしました =

RewriteRule ^names/([a-zA-Z0-9_]+|)(-in-|)([a-zA-Z0-9_]+|)(-|)([a-zA-Z0-9_]+|)(-|)([0-9]+|)/?$ query.php?sector=$1&location=$3&firmname=$5&firmnumber=$7

これは期待どおりに動作します。つまり、/names/something_else-in-somewhere-somename-100 と入力すると、これらの変数値が query.php ページに渡されます。

これは WordPress を使用するサイトで構築されており、デフォルトの WordPress htaccess ルールと思われるものに問題があり、/names/ なしで上記の書き換えルールを使用できません - クエリが必要なため文字列を URL として指定します。

ただし、書き換えルールから ^names/ を削除すると、WordPress ページにアクセスできなくなります。書き換えコードを htaccess ドキュメントの先頭に配置しました。以下を参照してください。

RewriteEngine On
RewriteBase /
RewriteRule ^names/([a-zA-Z0-9_]+|)(-in-|)([a-zA-Z0-9_]+|)(-|)([a-zA-Z0-9_]+|)(-|)([0-9]+|)/?$ query.php?sector=$1&location=$3&firmname=$5&firmnumber=$7 
ErrorDocument 404 /404.php 
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress

WordPress ルールの下に rewrite ルールを配置すると、一緒に機能しなくなります。誰かがこれがなぜなのかを明らかにし、これを修正するための正しい方向に私を向けることができますか?

4

2 に答える 2