2016-08-14 8 views
1

Привет, когда я пытаюсь использовать хороший URL-адрес с htaccess, он перенаправляется в файл, поэтому, когда я печатаю www.page.com/mainpage, он перенаправляется на www.page.com/mainpage.php, а не на www .page.com/index.php? arg1 = главную WAMP nice URL-адрес перенаправления на прямой файл

мой .htaccess выглядит

RewriteEngine On 
RewriteBase/
Options +FollowSymlinks 


RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ ?arg1=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png)$ [NC] 
RewriteRule ^([^/]+)/([^/]+)?/?$ ?arg1=$1&arg2=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png)$ [NC] 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?$ ?arg1=$1&arg2=$2&arg3=$3 [L,QSA] 

ответ

1

Вы, наверное, есть MultiViews включен. Кроме того, ваши перезаписи не ссылаются на index.php в любом месте. Попробуйте следующее:

Options +FollowSymlinks -MultiViews 

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ index.php?arg1=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png)$ [NC] 
RewriteRule ^([^/]+)/([^/]+)?/?$ index.php?arg1=$1&arg2=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png)$ [NC] 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?$ index.php?arg1=$1&arg2=$2&arg3=$3 [L,QSA] 
+0

Работа прекрасна! Просто скажи мне, почему этот вариант? Я так не понимаю ... –

+0

@PavelKocfelda https://devdocs.io/apache_http_server/mod/mod_negotiation#multiviews – hjpotter92