0

.htaccess を使用してルート フォルダーを変更しましたが、.html/.php 拡張子も非表示にする必要があります。ここで問題が発生します。拡張機能を非表示にする代替手段を見つけましたが、思ったほど単純ではありません。今までやってきたこと>>>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?cornellbond.co.uk$

RewriteCond %{REQUEST_URI} !^/liveSite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /liveSite/$1
RewriteCond %{HTTP_HOST} ^(www.)?cornellbond.co.uk$
RewriteRule ^(/)?$ liveSite/index.html [L]

これは機能しますが、次のコードを追加すると、すべてが機能しなくなります。

次に、SOF でこのコードを見つけた .html/.php 拡張子を非表示にしたかったので、2 つを組み合わせると、返されたのはエラーだけです。

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f       # if the requested URL is not a file that exists
RewriteCond %{REQUEST_FILENAME} !-d       # and it isn't a directory that exists either
RewriteCond %{REQUEST_FILENAME}\.html -f  # but when you put ".html" on the end it is a file that exists
RewriteRule ^(.+)$ $1\.html [QSA]         # then serve that file

</IfModule>

したがって、私のコードはすべて一緒に次のように見えました>>>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?cornellbond.co.uk$

RewriteCond %{REQUEST_URI} !^/liveSite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /liveSite/$1
RewriteCond %{HTTP_HOST} ^(www.)?cornellbond.co.uk$
RewriteRule ^(/)?$ liveSite/index.html [L]

<IfModule mod_rewrite.c>

RewriteCond %{REQUEST_FILENAME} !-f      
RewriteCond %{REQUEST_FILENAME} !-d      
RewriteCond %{REQUEST_FILENAME}\.html -f  
RewriteRule ^(.+)$ $1\.html [QSA]         

</IfModule>

これを回避できれば、とても感謝しています。私はこれを私にとってまったく新しいと言ったので、私はまだ学んでいます = P ありがとう

4

1 に答える 1

0

拡張機能を非表示にしたい場合は、これを見てください

RewriteRule ^(.*)\.(php|html)$ /$1 [L,R]
于 2012-10-05T14:21:16.083 に答える