私は最近、.htaccessでこれらの設定を使用する少しアップしたphpmvcマジックでサイトを修正しました。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-zA-Z0-9]*)/?([a-zA-Z0-9]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controller=$1&action=$2&arg=$3 [NC,L]
それは魅力のように機能しました。私が遭遇した唯一の問題は、cssや画像などのファイルを比較的参照するときに、URL localhost / projectname / controllername / action/idのダッシュが原因でフォルダー構造を下に移動したとブラウザーが想定したことでした。
そのため、css/styles.cssはlocalhost/controllername / action / id / css / styles.cssでリクエストされ、絶対パスを使用してその問題を修正しましたが、ローカルテストサーバーとリモートのライブおよび開発サーバーを使用した後はうまく機能しませんでした。 「プロジェクト名」なし-フォルダ
「 http://projectname.localhost 」のように、ローカルホストのサブドメインとして別のプロジェクトにアクセスできるように、ローカルのWampサーバーを構成することにしました。
関連するApacheモジュールをアクティブ化し、hostsファイルを編集し、httpd-vhosts.confを次のように変更しました。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost.com
ServerAlias www.localhost.com
DocumentRoot "C:\wamp\www"
ErrorLog "logs\errors.log"
<directory "C:\wamp\www">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
</VirtualHost>
<VirtualHost *:80>
ServerName localhost.com
ServerAlias *.localhost.com
VirtualDocumentRoot "C:\wamp\www\subdomains\%1"
ErrorLog "logs\errors.log"
<directory "C:\wamp\www\subdomains\%1">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
</VirtualHost>
今、projectname.localhost.com / controllername / action / idを呼び出すと、要求されたURL/subdomains/projectname/index.phpがこのサーバーで見つかりませんでした。projectname.localhost.com/index.phpはまだ正しいファイルを提供してくれます。
$_SERVER['DOCUMENT_ROOT'];に問題がある可能性があると聞きました。それは正しく設定されていませんが、それを知っていてもまだその問題を解決するのに役立っていません。
誰かが私を正しい方向に向けたり、そのような状況でのテストを可能にする別の環境構成を提案したりできますか?