想象服务器的根目录,其中有多个别名,例如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脚本行会做这样的事情?
谢谢:非常感谢!
答案 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
指令并重新启动服务器。