Как передать значение любому URL-адресу с помощью htaccess

#php #apache #.htaccess #mod-rewrite

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

Вопрос:

Я хочу передать string ( p=number ) для всех URL-адресов на моем веб-сайте

Пример:

www.abc.com/p/1/my-filename-1

www.abc.com/p/2/my-new-filename-anything

Это мой текущий код, но он не работает:

 <IfModule mod_rewrite.c>    
    Options  FollowSymLinks -Multiviews
    RewriteEngine On

    # Remove .php file extention
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^.] )$ $1.php [NC,L]


    # For individual page url
    #RewriteRule ^p/(.*).php $1.php?p=$2

</IfModule>
  

Ответ №1:

Попробуйте это правило, здесь мы получаем цифру из url и присваиваем ее соответствующему файлу с удаленным расширением.

 RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.] )/$ $1.php [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^p/([d] )/([w-] )$ $2.php?id=$1 [NC,L]
  

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

1. Предстоящий объект не найден.

2. где вы применяете корневой каталог правила или каталог /p?

3. каталога p нет, p — это просто переменная, которую я передаю через URL, поэтому вместо www.domain.com/my-url-path.php?p=1 чтобы www.domain.com/p/1/my-url-path

4. пожалуйста, попробуйте отредактировать! здесь я предполагаю, что в ваших php-файлах есть код для получения значения переменной p.

5. По-прежнему не работает, мой php-файл извлекает значение из p, но URL-адрес должен работать, ваше новое редактирование не работает: (