1

ブラウザでファイル拡張子を非表示にして、http://www.example.com/dir/abc.php表示するhttp://www.example.com/dir/abcだけのようにしたい。

私は次のrewriteCondを書き、ルールを書き換えました.htaccess

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]

しかし、このコードは役に立たないようです。

編集:これは私のhtaccessファイルの完全なコードです

Options -Indexes
ErrorDocument 403 /errors/403.php
ErrorDocument 404 /errors/404.php

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(js|css|jpg|png)$ - [F]
RewriteEngine on
RewriteRule ^(.*)\.[\d]{10}\.(css|js|png|jpg)$ $1.$2 [L]

RewriteEngine On



# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
4

5 に答える 5

1

完全な .htaccess:

Options +FollowSymLinks -MultiViews

ErrorDocument 403 /errors/403.php
ErrorDocument 404 /errors/404.php

RewriteEngine on 

# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]

# To internally forward /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]

# block direct hot linking
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteRule \.(js|css|jpg|png)$ - [F]

RewriteRule ^(.*)\.[\d]{10}\.(css|js|png|jpg)$ $1.$2 [L]
于 2013-10-29T14:20:32.783 に答える
0

私は決して Apache の専門家ではありませんが、ネゴシエーション モジュール (mod_negotiation) を誰も推奨しないのはなぜでしょうか。使用を避けるベストプラクティスの理由はありますか?

http://www.webhostingtalk.com/showthread.php?t=317269で通りすがりにそれについて聞きました。グローバル設定で mod_negotiation を有効にした後:

LoadModule negotiation_module /usr/lib/apache2/modules/mod_negotiation.so

仮想ホストのオプションで有効にする必要がありました。構成ブロック全体は次のとおりです。

DocumentRoot /var/www/site_directory/public_html
ServerName your.domain.here.com
<Directory /var/www/site_directory/public_html>
allow from all
Options +Indexes Multiviews
</Directory>
于 2014-04-02T02:38:13.567 に答える
0

簡単な方法は次のとおりです。

you create your  link like

'<a href="home">Home</a>'Then の代わりに'<a href="home.php">Home</a>'
、.htaccess は次のようになります。

RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-l
RewriteCond ^home home.php [L]
于 2013-12-30T13:24:09.443 に答える
0
 RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php
于 2013-10-29T12:40:14.143 に答える