1

私は .htaccess ファイルに詳しくないので、私の質問が少しばかげている場合はすみません。

お願いするときは

localhost/mydomain/blog.php

この形式の URL が必要です。

localhost/mydomain/blog/

私のウェブサイトのディレクトリは次のようになります。

ここに画像の説明を入力

.htaccess ファイルには次のものが含まれます。

.php 拡張子を削除

<IfModule mod_rewrite.c>        
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
</IfModule>

このリンクで

<a href="blog">Blog</a>

URL は次のとおりです。

localhost/createforweb_1.1/blog

しかし、末尾にスラッシュを追加したいので、これらの行を htaccess に追加すると:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://localhost/createforweb_1.1/$1/ [L,R=301]

次のエラーが表示されます。

The requested URL /blog/.php was not found on this server.

非常に単純だと思いますが、.htaccess の書き換えの経験が少しあります。

最新の .htaccess ファイル (ファイル全体)

<IfModule mod_rewrite.c>
 Options +FollowSymlinks
# Options +SymLinksIfOwnerMatch
 RewriteEngine On
# RewriteBase /
</IfModule>

Options -MultiViews

## Adding a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule . %{REQUEST_URI}/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [L]

代替ソリューション

すべてのページのフォルダーを作成し、ファイルをその中に移動して、名前を index.php に変更しました。新しいディレクトリ ツリーは次のようになります。

ここに画像の説明を入力

ブログ フォルダーをリクエストすると、blog/index.php が読み込まれます。URL は createforweb.gr/blog/ になります

これは受け入れられる解決策ですか、それとも将来的に問題が発生するでしょうか?

4

1 に答える 1

5

次のコードを.htaccessアンダーDOCUMENT_ROOTディレクトリに配置します。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## Adding a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule . %{REQUEST_URI}/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [L]
于 2013-03-22T21:04:12.783 に答える