Проблема с HTACCESS, пожалуйста, дайте мне знать, что я делаю неправильно

#php #apache #.htaccess #mod-rewrite

#php #apache #.htaccess #мод-перезапись

Вопрос:

Я пытаюсь переписать этот URL, но ничего не получается, пожалуйста, дайте мне знать, что я делаю не так.. Мне нужно переписать URL, чтобы единственное, что нужно увидеть, это ключевое слово plase help

 chopo.com.mx/promocion?codigoPromo=2amp;region=2amp;keyword=Perfil-Hormonal-1

Options  FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}s([^.] ).php [NC]
RewriteRule ^ %1 [R,L]

RewriteRule ^([a-zA-Z0-9_-] )/([0-9] )/$ http://chopo.com.mx/promocion.php?codigoPromo=$1amp;region=$2amp;keyword=$3

# To internally forward 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

# To remove www header
RewriteCond %{HTTP_HOST} ^www.(. )$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
  

Комментарии:

1. Что не так с chopo.com.mx/promocion?codigoPromo=2amp;region=2amp;keyword=Perfil-Hormonal-1 и что нужно переписать как?

2. Мне нужно переписать его как chopo.com.mx/promocion/perfil-hormonal-1 но htaccess просто игнорирует правило

3. Возможно, вы добьетесь большего успеха, если заглавите свой вопрос менее обобщенно.

Ответ №1:

Сохраняйте свой код таким:

 Options  FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}s([^.] ).php [NC]
RewriteRule ^ %1 [R,L]

# To remove www header
RewriteCond %{HTTP_HOST} ^www.(. )$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteRule ^promocion/([w-] )/?$ promocion.php?codigoPromo=2amp;region=2amp;keyword=$1 [L,QSA,NC]

# To internally forward 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
  

Комментарии:

1. все еще не работает, я подумал, что это может быть из-за того, что переменные являются числовыми, но, кроме того, я не понимаю, почему не работает.. пожалуйста, смотрите: chopo.com.mx / …

2. Что происходит, когда вы вводите URL как: chopo.com.mx/promocion/perfil-hormonal-1 в браузере?

3. теперь это работает, однако стили не загружаются. довольно близко, спасибо

4. используйте абсолютный путь в ваших файлах css, js, images, а не относительный. Это означает, что вы должны убедиться, что путь к этим файлам начинается либо с http:// , либо с косой черты / .

5. Я очень ценю вашу помощь, это сработало отлично, но поскольку я работаю с переменными, они неправильно применены к другим моим результатам, это сработало только с этим конкретным, но если мне нужно использовать другие переменные, например: codigoPromo = 3 amp; region = 3 amp; keyword = $ 1 и многие другие, они не будут работать, также мои переменные не загружены в выпадающие списки, которые вы можете увидеть по ссылке chopo.com.mx/promocion/Perfil-Hormonal-1