Я пытаюсь получить Apache 2.2 mod_rewrite для получения чистых URL.У меня есть ссылки, такие как
<ul>
<li><a href="index.php?view=pageName">Page Name</a></li>
<li><a href="index.php?view=pageName2">Page Name2</a></li>
<li><a href="index.php?view=pageName3">Page Name3</a></li>
</ul>
, и URL-адрес получается
http://example.com/user/index.php?view=pageName
Я хотел бы очистить URL-адрес в адресной строке, чтобы это
http://example.com/user/pageName
Редактировать: это то, что находится в моем httpd.conf, если оно используется.
<Directory "C:/Apache2.2/htdocs/user">
Options Indexes FollowSymLinks
AllowOverride all
order allow,deny
Allow from all
</Directory>
Используя phpinfo (), я проверил, что mod_rewrite загружен, и у меня это есть в моем.htaccess (пользовательский файл, не root .htaccess) и не виртуальный пользователь на apache
RewriteEngine on
RewriteBase /user/ #Edited rewrite base added in, but not helping much.
RewriteOptions Inherit
RewriteRule ^/user/([a-zA-Z])/?$ index.php?view=$1 [NC,L]
Редактировать: остальные мои .htaccess
#Ensure browser reads Header
Header unset ETag
FileETag None
Header unset Last-Modified
#Set caching expires
Header set Expires On
ExpiresDefault "access plus 30 days"
#gzip
<FilesMatch "\.(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
неработают одинаково для всех ссылок меню, которые идентичны по структуре html и не работают должным образом.IE: он отправляет мне http://example.com/user/?view=pageName
, но загружает содержимое корневого HTML-файла.
Если я изменю эту строку
RewriteRule ^/user/([a-zA-Z])/?$ index.php?view=$1 [NC,L]
на
RewriteRule ^index\.php$ http://www.google.com [NC,L]
Iполучить в Google, как ожидалось.Поэтому, очевидно, я должен делать что-то не так с соответствием и заменой, но что я делаю не так?Заранее спасибо.
Редактировать: access.log и error.log не содержат ошибок.