PHP Webページの書き換えに.htaccessを使用したい。または、「。php拡張子を使用したくない」という簡単な方法でWebページにアクセスします。
完全に機能していた.htaccessファイル(Ubuntu 14):
RewriteEngine on
#remove the need for .php extention
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
現在、Ubuntu 16.04にあるAWSのアップグレード後に、同じ.htaccessファイルが機能しません。アクセス許可の変更、書き換えモードの有効化、構成ファイルのディレクトリプロパティを「AllowOverride None」から「AllowOverride All」に変更するなど、すべてを試しました。
ある種の実験の後、上記の.htaccessファイルを以下のように修正することがわかりました。ただし、ここでは常に特定のphpページのみにアクセスできます。しかし、特定のphpページに具体的になりたくありません。私も正規表現を書いてみましたが、うまくいきませんでした。そして、常に特定のページにのみリダイレクトします。
<IfModule mod_rewrite.c><
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
誰かがこれで私を助けることができます。前もって感謝します。
私はトリックを行う必要があるこの例を見つけました:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
ソース:
https://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess
https://stackoverflow.com/questions/1992183/how-to-hide-the-html-extension-with-Apache-mod-rewrite
私は同じ問題に直面していました、ここにbuntuとApacheの解決策があります
最初にモジュールの書き換えを有効にします。
Sudo a2enmod rewrite
Apacheを再起動します
Sudo systemctl restart Apache2
今ディレクトリレベルの編集
Sudo vim /etc/Apache2/sites-enabled/000-default.conf
これらの行を最後に追加します
<Directory /var/www/html>
AllowOverride All
</Directory>
apacheを再起動します。
Sudo service Apache2 restart