0

我知道有很多话题。我尝试了很多次,但它不起作用。

我想要什么?

而不是example.com/en/file.php,用户只看到example.com/en/file

我的.htaccess 文件

DirectoryIndex index.php index.html

RewriteEngine on
*RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php*


ErrorDocument 404 /index.php

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^ru\/index\.php$ "http\:\/\/example\.com\/ru\/" [R=301,L]

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^en\/index\.php$ "http\:\/\/example\.com\/en\/" [R=301,L]

等每种语言

  1. 我必须添加什么来隐藏扩展程序?

  2. 在它工作之后,我应该使用页面之间的链接作为“file.php”还是只使用“file”?

4

3 回答 3

1

也许是这样的。根据您的需要进行修改以进行更具体的模式匹配。

RewriteRule ^(?:(.*)/)?(.*)$ $2.php?lang=$1

重写:

/en/fun => /fun.php?lang=en

/ru/fun => /fun.php?lang=ru

/fun => /fun.php?lang=

于 2013-04-16T21:53:09.487 回答
0
DirectoryIndex index.php index.html    

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$      $1.php     [L,QSA]

在您的链接中,不要使用扩展名。

于 2013-04-16T21:56:31.150 回答
0

通过添加一行来修复:

RewriteEngine on
**Options -Multiviews**
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$      $1.php     [L,QSA]
于 2013-04-18T07:02:39.197 回答