0

いくつかの ajax に対応するために、基本的な .htaccess の書き直しに取り組んでいます。

フォルダ構造

main.html
alpha/
      alpha.php
      alpha.html

main.html には、alpha/alpha.php を呼び出す div が含まれています。また、alpha/alpha.html には、alpha.php の静的インクルードも含まれています。

alpha/alpha.html を呼び出すクリーンな URL www.myUrl.com/alpha が必要です。

[^(html|php)]グループ内の各ルールから削除するなど、一連のルールに !NOT 条件を追加して、それぞれに含める必要がないようにするにはどうすればよいですか?

set the following condition
^[^(html|php)]$
for

RewriteRule ^(.*)_aaa$ %{DOCUMENT_ROOT}/$1/$1.html [L]
RewriteRule ^(.*)_bbb$ %{DOCUMENT_ROOT}/$1/$1.html [L]
RewriteRule ^(.*)_ccc$ %{DOCUMENT_ROOT}/$1/$1.html [L]

end condition and do not apply for 
RewriteRule ^(.*)_ddd$ %{DOCUMENT_ROOT}/$1/$1.html [L] 
RewriteRule ^(.*)_eee$ %{DOCUMENT_ROOT}/$1/$1.html [L]`

現在の .htaccess

Options +ExecCGIn
Options -indexes

DirectoryIndex main.html

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# main start page
RewriteRule ^main$ main.html [L] 

# clean for alpha
# myUrl.com/alpha
RewriteRule ^(.*)[^(html|php)]$ %{DOCUMENT_ROOT}/$1/$1.html [L] 

thxアート

4

1 に答える 1

0

ネガティブルックビハインドを使用してみてください。

RewriteRule ^(.*)(?<!html|php)$ %{DOCUMENT_ROOT}/$1/$1.html [L] 

ファンキーな小さな意味:文字列( )(?<!html|php)$の終わりで、前にaまたは。が付いていないこと。$htmlphp


編集:

与えられた:

set the following condition
^[^(html|php)]$
for

RewriteRule ^(.*)_aaa$ %{DOCUMENT_ROOT}/$1/$1.html [L]
RewriteRule ^(.*)_bbb$ %{DOCUMENT_ROOT}/$1/$1.html [L]
RewriteRule ^(.*)_ccc$ %{DOCUMENT_ROOT}/$1/$1.html [L]

end condition and do not apply for 
RewriteRule ^(.*)_ddd$ %{DOCUMENT_ROOT}/$1/$1.html [L] 
RewriteRule ^(.*)_eee$ %{DOCUMENT_ROOT}/$1/$1.html [L]`

あなたが欲しい:

# If this matches, (the opposite of !(html|php)), skip all of the following rules (3 of them)
RewriteRule \.(php|html)$ - [S=3]

RewriteRule ^(.*)_aaa$ %{DOCUMENT_ROOT}/$1/$1.html [L]
RewriteRule ^(.*)_bbb$ %{DOCUMENT_ROOT}/$1/$1.html [L]
RewriteRule ^(.*)_ccc$ %{DOCUMENT_ROOT}/$1/$1.html [L]

# if first condition matched, we skipped to here
RewriteRule ^(.*)_ddd$ %{DOCUMENT_ROOT}/$1/$1.html [L] 
RewriteRule ^(.*)_eee$ %{DOCUMENT_ROOT}/$1/$1.html [L]`
于 2012-10-03T08:46:07.357 に答える