#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-адрес должен работать, ваше новое редактирование не работает: (