Я новичок в .htaccess, но я не Linux и не php. У меня ошибка, которая сводит с ума.
У меня есть apache с модулями rewrite и userdir, которые включены. Мой mod_userdir.conf выглядит так
<IfModule mod_userdir.c> UserDir disabled root <Directory /home/*/public_html> AllowOverride All Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS PROPFIND> Require all granted </Limit> <LimitExcept GET POST OPTIONS PROPFIND> Require all denied </LimitExcept> </Directory> </IfModule>
Я создаю веб-страницу в $ HOME / public_html / mywebsite, где у меня есть .htaccess с кодом
Options +FollowSymLinks RewriteEngine On #RewriteRule ^images/ - [L] #RewriteRule ^css/ - [L] #RewriteRule ^js/ - [L] RewriteRule ^favicon.ico - [L] RewriteRule ^(images|css|js|classes)($|/) - [L] RewriteRule ^PayPal classes/paypal/initPP.php [L,QSA] RewriteRule ^PDF MakePDF.php [L,QSA] RewriteRule ^([-_0-9a-zA-Z:/]*)$ index.php?PageCall=$1 [L,QSA] # 400 - Bad request ErrorDocument 400 /index.php?error=400 # 401 - Authorization Required ErrorDocument 401 /index.php?error=401 # 403 - Forbidden ErrorDocument 403 /index.php?error=403 # 404 - Wrong page ErrorDocument 404 /index.php?error=404 # 500 - Internal Server Error ErrorDocument 500 /index.php?error=500
Моя проблема заключается в том, что каждый доступ к http: // localhost / ~ user / mywebsite возвращает страницу 404. Я догадался, это проблема перезаписи, потому что, когда комментарий
RewriteRule ^([-_0-9a-zA-Z:/]*)$ index.php?PageCall=$1 [L,QSA]
Страница показывает с ошибками php, связанными с переменными $ _GET.
Что я делаю не так?.
Заранее спасибо.
EDIT: Я отвечаю сам. Кажется, AllowOverride On также должен быть написан в httpd.conf. Поэтому я искал
# forbid access to the entire filesystem by default <Directory /> Options None AllowOverride None Require all denied </Directory>
И изменил AllowOverride на «Все».
поскольку вы работаете в подкаталоге, вы должны упомянуть RewriteBase как
RewriteBase /home/yourusername/public_html/mywebsite
добавьте эту строку далее ot RewriteEngine On line.