myname.com/index/ にアクセスすると、まだ /index/ フォルダーがありません。index.php のデータは取得されますが、/index/style.css が存在しないため、css は表示されません。存在しない多くのディレクトリ URL でこれをテストしましたが、すべて同じです。
/about/ about.php ページを表示します /contact/ contact.php ページを表示します
一致する .php ページが存在しない URL を読み込もうとしたときにのみ、404 が発生します。
例: blablabla.php が存在しないため、/blablabla/ は 404 を返します。
/about/ /contact/ /index/ および一致する .php ファイルを持つ他のディレクトリが 404 を返すようにするにはどうすればよいですか?
これは /etc/apache2/sites-available にある私の設定ファイルのコピーです
<VirtualHost *:80>
ServerAdmin webmaster@yourname.com
ServerName yourname.com
ServerAlias www.yourname.com
DocumentRoot /var/www/yourname.com/public_html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/yourname.com/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /var/www/yourname.com/public_html/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
LogLevel warn
ErrorLog /var/www/yourname.com/logs/error.log
CustomLog /var/www/yourname.com/logs/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpg "access 1 month"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/png "access 1 month"
ExpiresByType text/js "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType text/html "access 1 day"
ExpiresDefault "access 7 days"
</IfModule>
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0
# Set up caching on media files for 1 year (forever?)
<filesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</filesMatch>
# Set up caching on media files for 1 week
<filesMatch "\.(gif|jpg|jpeg|png|swf)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</filesMatch>
# Set up 2 Hour caching on commonly updated files
<filesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A7200
Header append Cache-Control "proxy-revalidate"
</filesMatch>
# Force no caching for dynamic files
<filesMatch "\.(php|cgi|pl|htm)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</filesMatch>
# 480 weeks
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=290304000, public"
</filesMatch>
# 2 DAYS
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 2 HOURS
<filesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</filesMatch>
</VirtualHost>
/var/www/yourname.com/public_html の .htaccess ファイルのコピーを次に示します。
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /var/www/yourname.com/.htpasswd
AuthGroupFile /dev/null
<Files admin.php>
require valid-user
</Files>
<Files systeminfo.php>
require valid-user
</Files>
私の .htaccess には、この問題を引き起こしていると思われるものは何もありません。基本的に、親ディレクトリにある 2 つのファイルをパスワードで保護しています。