2

必要なものに対する正しい解決策が見つからないので、誰かがここで私を助けてくれることを願っています.

私は今、このファイルを含むウェブサイトを持っています:

/admin/
/images/
/js/
about.php
index.php
news.php
questions.php

したがって、私の URL は次のようになります: www.mydomain.com/about.php www.mydomain.com/news.php ...

www.mydomain.com/about/、www.mydomain.com/news/、...

私は見つけた多くのことを試しましたが、どれも本来のように機能しないか、他の何かを台無しにします.

私が得た最も近いものはこれです:

RewriteRule about/ about.php
RewriteRule about about.php

しかし、名前 about (example images/about-me.jpg) を含むコードで画像を使用すると、これも台無しになります - おそらく2番目のステートメントが原因です。

4

3 に答える 3

2

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

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

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

## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]
于 2012-12-10T12:03:12.020 に答える
1

生活をシンプルにするために、ディレクトリベースの URL の使用をやめます

/約/

より単純なファイル ベース URL を使用する

/約

その余分なスラッシュはページをサブディレクトリに移動し、ページ内のすべての相対参照が壊れます。

または、すべてのリンク、インクルード、および画像 URL を変更して、すべてがドメインのルートに対して相対的であることを確認することもできます。これを行うには、URL の前に常にスラッシュ (/) を含めるか、完全な URL にします。

ルールをより具体的にします。

RewriteRule ^/about$ about.php

これらの余分な ^$ は開始と終了を示すため、完全に一致する必要があります。

于 2012-12-10T14:03:07.353 に答える
0

これは私のために働いた

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(about)$ about.php
于 2014-11-15T03:41:40.533 に答える