 |
รบกวนผู้รู้ช่วยแปลง .htaccess ไปเป็น web.config บน iis/windows ด้วยครับ |
|
 |
|
|
 |
 |
|
พอดีว่ากำลังศึกษาพวก framework อยู่ครับ
ด้วยเหตุที่รัน php บน iis เลยจำเป็นต้องใช้ url rewrite แทน
ซึ่งมันจะใช้เป็น web.config แทน .htaccess
โดย framework ตัวอื่นๆ สามารถ import ไฟล์ .htaccess
เข้ามาให้ url rewrite ทำการ convert เป็น web.config ได้โดยไม่มี error ใดๆ
แต่ติดอยู่ที่ framework 2 ตัว ที่ url rewrite มัน convert ไม่ได้ เพราะติด error
ที่ %{ENV:REDIRECT_STATUS} กับ [E=BASE:%1] และ %{ENV:BASE}
รบกวนผู้เชี่ยวชาญ ช่วย convert เป็น web.config ให้ดูตัวอย่างด้วยครับ
Zend 2 framework
.htaccess
RewriteEngine On
# The following rule tells Apache that if the requested filename
# exists, simply serve it.
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# The following rewrites all other queries to index.php. The
# condition ensures that if you are using Apache aliases to do
# mass virtual hosting, the base path will be prepended to
# allow proper resolution of the index.php file; it will work
# in non-aliased environments as well, providing a safe, one-size
# fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
Symfony 2 framework
.htaccess
# Use the front controller as index file. It serves as fallback solution when
# every other rewrite/redirect fails (e.g. in an aliased environment without
# mod_rewrite). Additionally, this reduces the matching process for the
# startpage (path "/") because otherwise Apache will apply the rewritting rules
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect to URI without front controller to prevent duplicate content
# (with and without `/app.php`). Only do this redirect on the initial
# rewrite by Apache and not on subsequent cycles. Otherwise we would get an
# endless redirect loop (request -> rewrite to front controller ->
# redirect -> request -> ...).
# So in case you get a "too many redirects" error or you always get redirected
# to the startpage because your Apache does not expose the REDIRECT_STATUS
# environment variable, you have 2 choices:
# - disable this feature by commenting the following 2 lines or
# - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
# following RewriteCond (best solution)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
# If the requested filename exists, simply serve it.
# We only want to let Apache serve files and not directories.
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
# The following rewrites all other queries to the front controller. The
# condition ensures that if you are using Apache aliases to do mass virtual
# hosting, the base path will be prepended to allow proper resolution of the
# app.php file; it will work in non-aliased environments as well, providing
# a safe, one-size fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# When mod_rewrite is not available, we instruct a temporary redirect of
# the startpage to the front controller explicitly so that the website
# and the generated links can still be used.
RedirectMatch 302 ^/$ /app.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
ปล. ที่ต้องใช้ใน iis ก็เพราะเขียน web ทั้ง asp.net, php และ jsp ครับ
เลยให้ php รันที่ iis เพราะยังไงก็ต้องใช้ iis รัน asp.net อยู่แล้ว
Tag : PHP, Windows
|
|
 |
 |
 |
 |
Date :
2013-05-07 09:21:11 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
View :
1965 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตัวอย่างนี้ครับ แปลงไม่ยากครับ
การทำ mod_rewrite บน IIS การแปลง Convert .htaccess เป็น Web.Config (IIS and PHP)
|
 |
 |
 |
 |
Date :
2013-05-07 10:34:25 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณนะครับ แต่ผมก็เรียนไปแล้วว่า
framework ตัวอื่นๆ สามารถ import ไฟล์ .htaccess
เข้ามาให้ url rewrite ทำการ convert เป็น web.config ได้โดยไม่มี error ใดๆ
แต่ติดอยู่ที่ framework 2 ตัว ที่ url rewrite มัน convert ไม่ได้ เพราะติด error
ที่ %{ENV:REDIRECT_STATUS} กับ [E=BASE:%1] และ %{ENV:BASE}

|
 |
 |
 |
 |
Date :
2013-05-07 10:42:15 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ สงสัยต้องศึกษาเองแล้วแหละครับ
เดี๋ยวจะลองดู syntax ของ .htaccess กับของ web.config ด้วยเลย
วันหลังจะได้แปลงเองได้ เดี๋ยวหาตารางเทียบก่อน
|
 |
 |
 |
 |
Date :
2013-05-08 08:38:11 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|