如何使用自己的网页PHP文件路由各种域别名来获取自己的文件夹?

时间:2011-02-17 01:25:44

标签: apache .htaccess url url-rewriting multilingual

想象服务器的根目录,其中有多个别名,例如website.nl; website.de;等所有直接到根\ httpdocs \的根用这个物理托管:

httpdocs\...
httpdocs\holland\    # webpages in Dutch   (home.php | contact.php | etc)
httpdocs\deutsch\    # webpages in English (home.php | contact.php | etc)
httpdocs\images\     # all multilingual webpages share the same images
httpdocs\js_css\     # all multilingual webpages share the same scripts/layout
httpdocs\.htaccess   # here be a clean root, nothing else than .htaccess

因此,只有网页.php不同:其余的都是相同的!现在想象你想通过apache脚本配置.htacces,以便在根目录和文件夹之间“填补空白”,这样就可以在浏览器和水下输入正确的php网页,但保留浏览器中更短的网址:

website.nl/home.php
//提取的文件应来自与website.nl

相关联的荷兰文件夹

website.de/home.php
//提取的文件应来自与website.de相关联的deutsch文件夹

(与在浏览器中看到的相反:website.nl/holland/home.php | website.de/deutsch/home.php)

什么apache脚本行会做这样的事情?
谢谢:非常感谢!

2 个答案:

答案 0 :(得分:3)

你需要在apache中安装“mod_rewrite”。 假设您这样做,将.htaccess文件放在该帐户的根目录中 (大概:) ~/public_html/.htaccess

然后把它放在那个文件中

RewriteEngine on

RewriteCond %{HTTP_HOST} ^website.nl(.*)$ [OR]
RewriteCond %{HTTP_HOST} ^www.website.nl(.*)$
RewriteRule ^.*$ "http\:\/\/www\.website\.nl\/holland\/$1" [L,P]

然后重复网站重写条件。

基本上就是说,抓住网站.nl部分之后的部分,并将其粘贴在荷兰之后的部分,但是“L,P”表示要进行静默重定向并将用户保持在同一网址上输入。

好运!

答案 1 :(得分:2)

假设您完全控制服务器配置,我倾向于没有mod_rewrite的设置。相反,我会为每个国家/地区站点使用两个单独的VirtualHost,并使用Alias指令来映射共享目录。在删节版本中,类似这样:

<VirtualHost website.nl>
DocumentRoot /httpdocs/holland   
ServerName website.nl

Alias /images /httpdocs/images
Alias /js_css /httpdocs/js_css
</VirtualHost>

<VirtualHost website.de>
DocumentRoot /httpdocs/deutsch
ServerName website.de

Alias /images /httpdocs/images
Alias /js_css /httpdocs/js_css
</VirtualHost>

这使您可以在两种语言中自由工作,并添加新资源和URL而无需编辑任何内容 - 只有添加了共享资源,您必须触摸Alias指令并重新启动服务器。