我有一个PHP网站,我试图隐藏扩展名。我通过Google找到了一些东西,但它们似乎都太复杂了,或者它们将index
重定向到index.php
:就像你写name.com/contact
一样,它会转到{{1} }}。我不想那样,我只想要:
name.com/contact.php
www.name.com/es/index.php to be www.name.com/es/inicio
www.name.com/es/empresa.php to be www.name.com/es/empresa
www.name.com/es/productos.php to be www.name.com/es/productos
www.name.com/es/clientes.php to be www.name.com/es/clientes
www.name.com/es/recetas.php to be www.name.com/es/recetas
www.name.com/es/contacto.php to be www.name.com/es/contacto
www.name.com/en/index.php to be www.name.com/en/home
www.name.com/en/company.php to be www.name.com/en/company
www.name.com/en/products.php to be www.name.com/en/products
www.name.com/en/clients.php to be www.name.com/en/clients
www.name.com/en/recepis.php to be www.name.com/en/recepis
www.name.com/en/contact.php to be www.name.com/en/contact
文件夹为英文版,/en/
文件夹为西班牙文版
网站内的链接也没有扩展名。
例如,与/es/
关联的图片为clientes
而不是 clientes
和,如果有人试图去{ {1}},它仍然有效但重定向到clientes.php
。
答案 0 :(得分:7)
htacces文件应如下所示:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
您可以使用相同的名称重定向网址中的任何php文件,而无需使用" php"。
然后在您的php文件中,您可以检查该网址是否包含扩展名(http://blabla.com/bla .php )并将网页重定向到相同的网页,而不是扩展程序。<登记/>
所以,在每个php文件的开头你应该调用这个函数:
function redirectIfNeeded(){
$url = $_SERVER["REQUEST_URI"];
if(preg_match("/\.php/$", $url))
header("Location: ".preg_replace("/\.php/",$url));
}
答案 1 :(得分:0)
请在根目录中创建 .htaccess 文件并使用此代码!!
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]
希望!!这对某人有用!
答案 2 :(得分:0)
RewriteEngine on
Rewritecond %{REQUEST_URI} !-f Rewritecond %{REQUEST_URI} !-d Rewritecond %{REQUEST_URI} !-l RewriteRule ^([\w\d-]+)$ $1.php [L]
RewriteRule ^([^/.]+)$ $1.php [L]