このURLを最初に見てください:
https://stackoverflow.com/questions/tagged/xoxoxo/
このディレクトリは存在しませんが、どういうわけか、stackoverflowはその最後のディレクトリをパラメータとしてベーススクリプトに渡すことができます。
これは、IISまたはApacheを構成するために可能ですか?どのように?
このURLを最初に見てください:
https://stackoverflow.com/questions/tagged/xoxoxo/
このディレクトリは存在しませんが、どういうわけか、stackoverflowはその最後のディレクトリをパラメータとしてベーススクリプトに渡すことができます。
これは、IISまたはApacheを構成するために可能ですか?どのように?
この種の動作の背後にあるメカニズムはurl-rewritingと呼ばれ、-modules を使用してApacheに実装できます。IIS 7用のMicrosoft URL 書き換えモジュール。mod_rewrite
たとえば、次の設定により、既存のファイルまたはディレクトリと一致しないすべての要求がファイルに転送されindex.php
ます。
mod_rewrite
(.htaccess
ドキュメントのルート ディレクトリまたは のどこかにhttpd.conf
)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR] // IF is file (with size > 0)
RewriteCond %{REQUEST_FILENAME} -l [OR] // OR is symbolic link
RewriteCond %{REQUEST_FILENAME} -d // OR is directory
RewriteRule ^.*$ - [NC,L] // DO NOTHING
RewriteRule ^.*$ index.php [NC,L] // TRANSFER TO index.php
ISAPI_Rewrite Lite (IIS 設定の適切なダイアログで)
// uses same syntax as mod_rewrite
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Microsoft URL 書き換えモジュール(web.config
ドキュメント ルート ディレクトリまたは構成ツリーのどこかにある)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="MatchExistingFiles" stopProcessing="true">
<match url="^.*$" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" ignoreCase="false" />
</conditions>
<action type="None" />
</rule>
<rule name="RemapMVC" stopProcessing="true">
<match url="^.*$" />
<conditions logicalGrouping="MatchAll" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>