0

¦記号はhtaccessで何をしますか。htaccessのオンラインフォーラムからコードを取得しましたが、彼らは¦を使用しています。おそらくパイプシンボルと何か違いがある場合、htaccessでこのシンボルが何を意味するのかを理解したいと思います|

RewriteEngine on
#
### Disallow Image Hotlinking
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://www\.example\.net
RewriteRule \.(jpe?g¦gif¦bmp¦png)$ - [F]
#
### Externally redirect to remove ".php" if the user adds it
RewriteCond %{THE_REQUEST} ^GET\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.example.net/$1 [R=301,L]
#
### Externally redirect to remove double slashes
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . http://www.example.net/%1/%2 [R=301,L]
#
### Externally redirect to remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ http://www.example.net/$1 [R=301,L]
#
### Externally redirect non-canonical hostname requests to canonical
### domain (if not already done by one of the preceding rules)
RewriteCond %{HTTP_HOST} !=www.example.net
RewriteRule ^(.*)$ http://www.example.net/$1 [R=301,L]
#
### Internally rewrite requests for URLs which do not resolve
### to physically-existing files or directories to a PHP file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
4

1 に答える 1

1

確かにそこにあるはずはなく、間違ったシンボルを含むソースからコピー&ペーストした結果、そこにある可能性があります。

RegExp ライブラリにとっては、特別な意味を持たない単なる別のリテラル文字になります。パイプ記号のようには扱われません。つまり、書き込みに似ています。

RewriteRule \.(jpe?gxgifxbmpxpng)$ - [F]

そして、それはルールを役に立たなくします。

出典:確認のためにテストしました。

于 2013-02-11T00:53:40.647 に答える