У меня два сервера Apache имеют одинаковые настройки, я клонировал конфигурационные файлы apache и только изменил часть ServerName. Когда я набираю mysite.com/somestuff, он должен переписываться на index.php, он делает это на моем старом сервере, но не в моем новом. Я убедился, что .htaccess есть, когда я делаю mysite.com/index.php/somestuff, он работает, но, как и мой первый сайт, мне нужно, чтобы он работал с mysite.com/somestuff.Правила перезаписи Apache не работают должным образом
Я действительно стучал головой о стену здесь мой .htaccess и апач конфигурационный файл
#.htaccess file
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}index.php/ [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /index.php/
</IfModule>
</IfModule>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Теперь для моего апача конфигурации
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mysite.com
DocumentRoot /home/richardw/www/halogen/web
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/richardw/www/halogen/web/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Мои извинения, если это репост, но Я искал все, и я собираюсь потерять его.
Когда вы переходите на 'http: // mysite.com /', вы перенаправлены на 'http: // mysite.com/index.php /'? –
да это действительно jon –