Перепишите все запросы для не необходимости в .php расширении с помощью mod_rewrite RewriteRule

Я не понимаю строку, где переменная x назначена адресу R

int &R = x;

В приведенной выше строке объявляется reference-to-int с именем R, и делает его ссылкой на уже существующую переменную x. то есть в любом коде функции ниже строки, R будет действовать как псевдоним для x.

//int &R = &x;   // ERROR!

Приведенная выше строка (когда она не закомментирована) выдает ошибку, поскольку значение в правой части = имеет тип int * (т.е. это указатель на int), в то время как значение на левой стороне = имеет тип int & (то есть это ссылка на int).

В C ++ ссылки действуют в некотором смысле как указатели, но с точки зрения их синтаксиса они в основном следуют тем же правилам, что и тип, на который они ссылаются - это потому, что они действуют как псевдонимы для значения этого типа , Так что в этом случае, так же как вы не можете назначить указатель на int, вы также не можете назначить указатель на int &:

int R = &x;   // This would also be an error
6
задан 2 revs 20 December 2008 в 19:51
поделиться

5 ответов

Я сделал бы это этот путь. В основном, если файл не существует, попытайтесь добавить .php к нему.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ $1.php [QSA,L]
6
ответ дан 16 December 2019 в 21:48
поделиться

Если можно изменить httpd.conf и что к, можно также поместить:

ForceType application/x-httpd-php

в файле, поскольку это вызовет все пути, названные, чтобы быть файлами PHP. Я думаю, что это также работает со строками запроса.

1
ответ дан 16 December 2019 в 21:48
поделиться

Это работает:

RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^/?([^/\.]+)$ /$1.php [L]

Идея состоит в том, чтобы удостовериться, что существует строка запроса (вопросительный знак плюс материал), и раз так проверьте, не имеет ли материал перед вопросительным знаком никакого расширения и если так, добавьте .php.

1
ответ дан 16 December 2019 в 21:48
поделиться

Что-то как...

RewriteRule /something/(.+)?(.+) /something/$1.php?$2

вероятно, работал бы.

0
ответ дан 16 December 2019 в 21:48
поделиться

Соответствия только соединяют каналом без расширения:

RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php

Править: В моем тестировании строка запроса передается автоматически. Если это не делает, можно использовать это вместо этого:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php?%1
0
ответ дан 16 December 2019 в 21:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: